क्या आपको सी ++ में मॉलोक करने की ज़रूरत है?
क्या आपको सी ++ में मॉलोक करने की ज़रूरत है?

वीडियो: क्या आपको सी ++ में मॉलोक करने की ज़रूरत है?

वीडियो: क्या आपको सी ++ में मॉलोक करने की ज़रूरत है?
वीडियो: 24 [Hindi] Dynamic Memory Allocation, malloc( ), calloc( ), free( ), realloc( ) | C Lang in Hindi 2024, मई
Anonim

आप उपयोग मॉलोक कब आप की जरूरत है वस्तुओं को आवंटित करने के लिए अवश्य वर्तमान ब्लॉक के निष्पादन के जीवनकाल से परे मौजूद है (जहां एक कॉपी-ऑन-रिटर्न चाहेंगे महंगा भी हो), या यदि आपको स्मृति आवंटित करने की आवश्यकता है उस ढेर के आकार से बड़ा (यानी: एक 3 एमबी स्थानीय स्टैक सरणी एक बुरा विचार है)।

साथ ही, क्या आपको सी ++ में मॉलोक करने की ज़रूरत है?

अंतर सरल है: मॉलोक स्मृति आवंटित करता है, जबकि नया स्मृति आवंटित करता है और वस्तु के निर्माता को कॉल करता है आप के लिए स्मृति आवंटित कर रहे हैं। तो, जब तक आप सी तक ही सीमित है, तुम्हे करना चाहिए कभी उपयोग न करो मॉलोक , खासकर जब से निपटने सी++ वस्तुओं।

कोई यह भी पूछ सकता है कि मॉलोक का क्या मतलब है? सी में, पुस्तकालय समारोह मॉलोक ढेर पर स्मृति का एक ब्लॉक आवंटित करने के लिए प्रयोग किया जाता है। प्रोग्राम मेमोरी के इस ब्लॉक को एक पॉइंटर के माध्यम से एक्सेस करता है कि मॉलोक रिटर्न। जब मेमोरी की आवश्यकता नहीं रह जाती है, तो पॉइंटर को फ्री में पास कर दिया जाता है जो मेमोरी को हटा देता है ताकि इसका उपयोग अन्य उद्देश्यों के लिए किया जा सके।

इस तरह, सी ++ में मॉलोक है?

मॉलोक () में समारोह सी++ आबंटित करता है ए अप्रारंभीकृत स्मृति और रिटर्न का ब्लॉक ए शून्य सूचक को NS का पहला बाइट NS आवंटित स्मृति ब्लॉक अगर NS आवंटन सफल होता है। अगर NS आकार शून्य है, NS लौटाया गया मूल्य निर्भर करता है NS का कार्यान्वयन NS पुस्तकालय। यह हो भी सकता है और नहीं भी ए नल पॉइंटर।

आप संरचना को मॉलोक कैसे करते हैं?

आप जो चाहते हैं उसके लिए आपको दो की जरूरत है मॉलोक () एस। struct वेक्टर * वाई = मॉलोक (आकार * वाई); /* सूचक नोट करें */ y->x = calloc(10, sizeof *y->x); पहली पंक्ति में, आप वेक्टर ऑब्जेक्ट के लिए मेमोरी आवंटित करते हैं। मॉलोक () आवंटित मेमोरी में एक पॉइंटर लौटाता है, इसलिए y एक वेक्टर पॉइंटर होना चाहिए।