Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C/C++ में malloc() और free() कैसे काम करते हैं?

malloc()

malloc() फ़ंक्शन का उपयोग अनुरोधित आकार के बाइट्स आवंटित करने के लिए किया जाता है और यह आवंटित मेमोरी के पहले बाइट का पॉइंटर लौटाता है। यदि यह विफल होता है तो यह नल पॉइंटर लौटाता है।

C में सिंटैक्स

pointer_name = (cast-type*) malloc(size);

पैरामीटर्स:

  • pointer_name - पॉइंटर को दिया गया कोई भी नाम।
  • cast-type - वह डेटाटाइप जिसमें आप malloc() द्वारा आवंटित मेमोरी को कास्ट करना चाहते हैं।
  • size - बाइट्स में आवंटित मेमोरी का आकार।

उदाहरण

#include <stdio.h>
#include <stdlib.h>

int main() {
    int n = 4, i, *p, s = 0;
    p = (int*) malloc(n * sizeof(int));
    
    if (p == NULL) {
        printf("\nएरर! मेमोरी आवंटित नहीं हुई।");
        exit(0);
    }
    
    printf("\nऐरे के एलिमेंट्स दर्ज करें: ");
    for (i = 0; i < n; ++i) {
        scanf("%d", p + i);
        s += *(p + i);
    }
    printf("\nयोग: %d", s);
    return 0;
}

आउटपुट

ऐरे के एलिमेंट्स दर्ज करें: 32 23 21 8
योग: 84

free()

free() फ़ंक्शन का उपयोग malloc() द्वारा आवंटित मेमोरी को डीएलोकेट करने के लिए किया जाता है। यह पॉइंटर के मान को नहीं बदलता जिसका अर्थ है कि यह अभी भी उसी मेमोरी लोकेशन को इंगित करता है।

C में सिंटैक्स

void free(void *pointer_name);

पैरामीटर्स:

  • pointer_name - पॉइंटर को दिया गया कोई भी नाम।

उदाहरण

#include <stdio.h>
#include <stdlib.h>

int main() {
    int n = 4, i, *p, s = 0;
    p = (int*) malloc(n * sizeof(int));
    
    if (p == NULL) {
        printf("\nएरर! मेमोरी आवंटित नहीं हुई।");
        exit(0);
    }
    
    printf("\nऐरे के एलिमेंट्स दर्ज करें: ");
    for (i = 0; i < n; ++i) {
        scanf("%d", p + i);
        s += *(p + i);
    }
    printf("\nयोग: %d", s);
    free(p);
    return 0;
}

आउटपुट

ऐरे के एलिमेंट्स दर्ज करें: 32 23 21 28
योग: 104
  1. C++ में एक्सेप्शन कैसे काम करते हैं C++ में एक्सेप्शन कैसे काम करते हैं

    परिचयC++ में एक्सेप्शन हैंडलिंग रनटाइम त्रुटियों को संभालने की एक प्रक्रिया है। एक्सेप्शन एक घटना है जो C++ में रनटाइम पर फेंकी जाती है। सभी एक्सेप्शन std::exception क्लास से प्राप्त होते हैं। यह एक रनटाइम त्रुटि है जिसे संभाला जा सकता है। यदि हम एक्सेप्शन को नहीं संभालते हैं तो यह एक्सेप्शन संदेश प

  1. - C++ में मेंबर फंक्शन्स में स्टैटिक वेरिएबल्स कैसे काम करते हैं?

    मेंबर फंक्शन्स में स्टैटिक वेरिएबल्स को static कीवर्ड का उपयोग करके घोषित किया जाता है। स्टैटिक वेरिएबल्स के लिए स्पेस केवल एक बार आवंटित किया जाता है और यह पूरे प्रोग्राम के लिए उपयोग किया जाता है। साथ ही, पूरे प्रोग्राम में इन स्टैटिक वेरिएबल्स की केवल एक कॉपी होती है। C++ में मेंबर फंक्शन्स में स

  1. C++ में कॉम्बिनेशन और पर्मुटेशन कैसे कैलकुलेट करें? C++ में कॉम्बिनेशन और पर्मुटेशन कैसे कैलकुलेट करें?

    कॉम्बिनेशन और पर्मुटेशन कॉम्बिनेटोरिक्स का हिस्सा हैं। पर्मुटेशन वे विभिन्न व्यवस्थाएं हैं जो एलिमेंट्स का एक सेट बना सकता है यदि एलिमेंट्स को एक समय में, कुछ समय में या सभी समय में लिया जाए। कॉम्बिनेशन एलिमेंट्स को चुनने के विभिन्न तरीके हैं यदि एलिमेंट्स को एक समय में, कुछ समय में या सभी समय में ल