Ticker

6/recent/ticker-posts

malloc in hindi | malloc | dynamic memory allocation using malloc

 malloc in hindi | malloc | dynamic memory allocation using malloc


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

malloc() फंक्शन का उपयोग जब आपको किसी भी साइज के डाटा के लिए मेमोरी आवंटित करने की आवश्यकता होती है, लेकिन आपको इस बात का अनुमान नहीं होता कि आपको कितनी मेमोरी की आवश्यकता होगी। malloc() फंक्शन को सामान्यतया sizeof() ऑपरेटर के साथ इस्तेमाल किया जाता है, जो आपको विभिन्न डेटा टाइप्स की साइज जानने में मदद करता है। मेमोरी आवंटित होने पर malloc एक void पॉइंटर return करता है जिसे आवश्यकता अनुसार टाइप-कास्ट किया जाता है। और मेमोरी न होने पर यह NULL return करता है।

सिंटेक्स  : 

                                ptr = (cast type *) malloc (size);

यहाँ size आवंटित किये जाने वाले मेमोरी का size है और cast-type , malloc द्वारा return किये गए void पॉइंटर के लिए आवश्यक कन्वर्शन है।

यहाँ एक उदाहरण है:



#include<stdio.h>
#include<stdlib.h>
void main()
{
    int *ptr,n;
    printf("Enter the size of block to be allocated\n");
    scanf("%d",&n);
    ptr= (int *)malloc(n * sizeof(int));
    if (ptr == NULL)
    {
        printf(" memory not available");
        exit(1);
    }
    printf("Enter %d values",n);
    for (int i =0 ;i<n;i++)
    {
        scanf("%d",(ptr+i));
    }

 printf(" Entered values are \n");

for (int i =0 ;i<n;i++)
{
    printf("%d \n",*(ptr+i));
}
free(ptr);
}
 

इस उदाहरण में, हमने malloc() का उपयोग n संख्या के इंटीजर्स के लिए मेमोरी आवंटित करने के लिए किया है। उसके बाद हमने एक फॉर लूप की सहायता से यूजर से उस मेमोरी ब्लाक में n इंतेजर्स को पॉइंटर की मदद से इनपुट कराया है और दूसरे  फॉर लूप की सहायता से इनपुट की गयी इंटिजर्स को आउटपुट कराया है। 

ध्यान रहे की if स्टेटमेंट में हम यह चेक कर रहे हैं कि, कहीं   malloc  ने NULL तो नहीं return किया है।  अगर if स्टेटमेंट true हो जाता है तो इसका मतलब है, मेमोरी आवंटित नहीं हुई है और exit की मदद से प्रोग्राम वहीँ terminate हो जाता है। 

 आखिर में हम free () फंक्शन की मदद से malloc द्वाराआवंटित मेमोरी को रिलीज़ कर रहे हैं।  यह जरूरी होता है।

आशा है, इस आर्टिकल से आपको निम्न टॉपिक्स समझ आये होंगे

  • मैलोक
  • डाइनामिक मेमोरी अलोकेशन करना
  • सी भाषा में मेमोरी अलोकेशन करना
  • साइज़ जानने के लिए sizeof इस्तेमाल करना
  • मेमोरी फ्री करना
  • malloc() फंक्शन

आप malloc in hindi | malloc | dynamic memory allocation using malloc | malloc() फंक्शन की वर्किंग को निचे दिए हुए हमारे वीडियो टुटोरिअल से भी समझ सकते हैं :


Post a Comment

0 Comments