"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आप C++ में गतिशील रूप से आवंटित सरणी का आकार कैसे निर्धारित कर सकते हैं?

आप C++ में गतिशील रूप से आवंटित सरणी का आकार कैसे निर्धारित कर सकते हैं?

2024-11-09 को प्रकाशित
ब्राउज़ करें:987

How Can You Determine the Size of a Dynamically Allocated Array in C  ?

सी में गतिशील आवंटन के बाद ऐरे का आकार निर्धारित करना

सी में, नए ऑपरेटर का उपयोग करके गतिशील रूप से आवंटित किए गए ऐरे स्वाभाविक रूप से अपने आकार को प्रोग्रामेटिक रूप से उजागर नहीं करते हैं। यह प्रश्न इस अवलोकन से उठता है कि मेमोरी को प्रभावी ढंग से हटाने के लिए डिलीट[] को आवंटित सरणी के आकार के बारे में पता होना चाहिए।

ऐरे आकार प्राप्त करने के लिए कोई अंतर्निहित फ़ंक्शन क्यों नहीं?

स्टैक पर घोषित सरणियों के विपरीत, जिनका आकार sizeof() का उपयोग करके निर्धारित किया जा सकता है, संकलन के दौरान गतिशील रूप से आवंटित सरणियों का आकार अज्ञात है। ऐसा इसलिए है क्योंकि रनटाइम या ऑपरेटिंग सिस्टम का मेमोरी मैनेजर आवंटित मेमोरी को प्रबंधित करता है, कंपाइलर नहीं। sizeof() एक संकलन-समय स्थिरांक के रूप में कार्य करता है और गतिशील रूप से आवंटित सरणियों के आकार का गतिशील रूप से मूल्यांकन नहीं कर सकता है।

वैकल्पिक रणनीतियाँ

हालांकि C एक अंतर्निहित प्रदान नहीं करता है सरणी के आकार को प्राप्त करने के लिए फ़ंक्शन, वैकल्पिक दृष्टिकोण हैं:

  • पॉइंटर सिमेंटिक्स: सी में ऐरे पॉइंटर्स तक क्षय करते हैं। पॉइंटर में हेरफेर करके, कोई घटाव के माध्यम से सरणी के आकार का अनुमान लगा सकता है, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:
int *arr = new int[256];
int *p = &arr[100];
int size = p - arr; // Subtracting pointers yields the size
  • कस्टम मेमोरी प्रबंधन: यदि मेमोरी प्रबंधन पर नियंत्रण वांछित है, तो कोई एक कस्टम मेमोरी प्रबंधन योजना लागू कर सकता है जो आवंटित मेमोरी और उसके आकार को ट्रैक करता है। इस दृष्टिकोण को सावधानीपूर्वक संभालने की आवश्यकता होती है और इसकी अपनी जटिलताएं होती हैं। स्मृति प्रबंधन लचीलेपन और प्लेटफ़ॉर्म स्वतंत्रता पर भाषा के फोकस से। हालाँकि यह कुछ परिदृश्यों में सीमाएँ प्रस्तुत करता है, यह विविध कार्यान्वयन रणनीतियों और अनुकूलन अवसरों की भी अनुमति देता है।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3