Stdlib.h पुस्तकालय में, इस उद्देश्य की पूर्ति के लिए एक समर्पित कार्य है, अर्थात, मुक्त () फ़ंक्शन। आज, हम सी प्रोग्रामिंग भाषा में इस फ़ंक्शन का उपयोग करने की आवश्यकता का पता लगाएंगे। उसके बाद, हम कुछ उदाहरण देखेंगे जिसमें इस फ़ंक्शन का उपयोग लिनक्स में सी प्रोग्रामिंग भाषा में मैन्युअल रूप से मेमोरी को खाली करने के लिए किया गया है।
सिस्टम मेमोरी को खाली करने के लिए C में फ्री फंक्शन का उपयोग करने की आवश्यकता:
हम सभी जानते हैं कि हमारे कंप्यूटर सिस्टम में सीमित मेमोरी होती है, जिसके कारण हम कभी भी इसमें अनंत प्रोग्राम नहीं चला सकते हैं। स्वचालित मेमोरी आवंटन के मामले में, जब आपके प्रोग्राम का निष्पादन समाप्त हो जाता है, तो कंप्यूटर मेमोरी को खाली करने का ध्यान रखता है। हालाँकि, जब हम मेमोरी को मैन्युअल रूप से हीप से आवंटित करते हैं, तो हमें इसे किसी न किसी तरह से मुक्त करना होगा।
अन्यथा, हमारे पास अंततः स्मृति की कमी हो जाएगी, और हम अपने कार्यक्रम आगे नहीं चलाएंगे। यह वह जगह है जहां stdlib.h पुस्तकालय का मुफ्त () कार्य चलन में आता है। हम इस फ़ंक्शन का उपयोग प्रोग्राम के अंत में रिटर्न स्टेटमेंट से ठीक पहले करते हैं ताकि आपके प्रोग्राम की समाप्ति से पहले हीप मेमोरी को कंप्यूटर सिस्टम में वापस कर दिया जाए।
मान लीजिए कि आप अपने सी कोड लिखते समय इस फ़ंक्शन को अनदेखा करते रहेंगे जो विशेष रूप से गतिशील स्मृति आवंटन के लिए लक्षित हैं। उस स्थिति में, एक बिंदु आएगा जब आप अपने ढेर तक आगे नहीं पहुंच पाएंगे क्योंकि यह स्मृति से बाहर हो जाएगा। यही कारण है कि जब भी आप गतिशील रूप से स्मृति आवंटन की जिम्मेदारी ले रहे हों तो इस कम मूल्यवान कार्य को कभी नहीं भूलना चाहिए।
C प्रोग्रामिंग लैंग्वेज में फ्री () फंक्शन का सामान्य सिंटैक्स इस प्रकार है:
शून्यनि: शुल्क (शून्य*पीटीआर)यहां, फ्री () फ़ंक्शन से पहले शून्य कीवर्ड बताता है कि इस फ़ंक्शन का रिटर्न प्रकार शून्य है। कोष्ठक के अंदर सूचक स्मृति स्थान से मेल खाता है जिसे हटाने की आवश्यकता है। निम्नलिखित खंड कुछ उदाहरणों का वर्णन करेगा जिसमें C में प्राप्त गतिशील मेमोरी को मुक्त करने के लिए फ्री () फ़ंक्शन का उपयोग किया गया है।
सी में फ्री फंक्शन का उपयोग करने के उदाहरण:
फ्री () फ़ंक्शन का उपयोग stdlib.h लाइब्रेरी के सभी तीन मेमोरी आवंटन कार्यों, यानी, मॉलोक, कॉलोक और रीयलोक के साथ किया जा सकता है। अपने प्रोग्राम की बुनियादी कार्यक्षमता बताने के बाद इस फ़ंक्शन का उपयोग करना अनिवार्य है ताकि आप प्रोग्राम निष्पादन के दौरान गतिशील रूप से आवंटित की गई हीप मेमोरी को अपने कंप्यूटर सिस्टम को वापस सौंप सकें। अब, आइए कुछ उदाहरणों पर एक नज़र डालते हैं जिसमें सी प्रोग्रामिंग भाषा में मॉलोक और कॉलोक फ़ंक्शन के साथ फ्री () फ़ंक्शन का उपयोग किया गया है।
उदाहरण # 1: C में कॉलोक के साथ फ्री फंक्शन का उपयोग करना:
कॉलोक () फ़ंक्शन के साथ मुफ्त () फ़ंक्शन का उपयोग करने के लिए सी कोड नीचे की छवि में साझा किया गया है:
इस कोड का मूल उद्देश्य कॉलोक () फ़ंक्शन की मदद से कुछ मेमोरी को गतिशील रूप से असाइन करना था। उसके लिए, हमने उपयोगकर्ता से इनपुट के रूप में डायनेमिक मेमोरी का आकार और इस डायनेमिक मेमोरी के मूल्यों को लिया है। फिर, हमने टर्मिनल पर अधिग्रहीत मूल्यों को प्रिंट करने का इरादा किया। इस पूरे कोड के बाद, हमारे पास हमारा फ्री () फ़ंक्शन है जो हमारे सी प्रोग्राम के निष्पादन के कारण आवंटित गतिशील मेमोरी को जारी करेगा।
उसी कोड का थोड़ा संशोधित संस्करण भी नीचे दी गई छवि में दिखाया गया है:
यह संशोधित संस्करण केवल हमारे गतिशील रूप से आवंटित स्मृति मूल्यों को इसके मैन्युअल आरंभीकरण से पहले मुद्रित करने का इरादा रखता है। हम जानते हैं कि कॉलोक () फ़ंक्शन वास्तविक होने से पहले पूरी मेमोरी को शून्य से आरंभ करता है। हालाँकि, इस कोड में यहाँ पर ध्यान देने योग्य मुख्य बात यह है कि भले ही यह कोड काफी कॉम्पैक्ट और सरल था, फिर भी हमने फ्री () फ़ंक्शन का उपयोग किया, एक बार वांछित कार्यक्षमता प्राप्त करने के बाद ही हमारे पास मौजूद हीप मेमोरी को रिलीज़ करने के लिए इस सी प्रोग्राम को निष्पादित करने के परिणामस्वरूप प्राप्त किया गया।
उदाहरण # 2: सी में मॉलोक के साथ फ्री फंक्शन का उपयोग करना:
मॉलोक () फ़ंक्शन के साथ फ्री () फ़ंक्शन का उपयोग करने के लिए सी कोड नीचे संलग्न छवि में साझा किया गया है:
इस कोड का मूल उद्देश्य मॉलोक () फ़ंक्शन की मदद से कुछ मेमोरी को गतिशील रूप से असाइन करना था। उसके लिए, हमने इस डायनामिक मेमोरी के मानों को लूप के लिए असाइन किया है। फिर, हमने लूप के लिए दूसरे की मदद से टर्मिनल पर अधिग्रहीत मूल्यों को प्रिंट करने का इरादा किया। इस पूरे कोड के बाद, हमारे पास रिटर्न स्टेटमेंट से ठीक पहले हमारा फ्री () फ़ंक्शन है जो हमारे सी प्रोग्राम के निष्पादन के परिणामस्वरूप आवंटित गतिशील मेमोरी को आसानी से जारी करेगा।
निष्कर्ष:
इस लेख ने लिनक्स में सी प्रोग्रामिंग भाषा में मुफ्त () फ़ंक्शन का उपयोग करने के महत्व पर जोर दिया। अधिकांश उपयोगकर्ता मानते हैं कि stdlib.h फ़ाइल के आवंटन कार्य अधिक महत्वपूर्ण हैं; हालाँकि, इस लेख को पढ़कर, आप स्पष्ट रूप से देख सकते हैं कि फ्री () फ़ंक्शन भी उतना ही महत्वपूर्ण है। यह आपको गतिशील रूप से अधिग्रहीत स्मृति को मुक्त करने में मदद करेगा और यह सुनिश्चित करेगा कि जब भी आप भविष्य में अपने कार्यक्रमों को निष्पादित करने का प्रयास करते हैं तो आप कभी भी स्मृति से बाहर नहीं निकलते हैं।