स्टैक पर डायनामिक ऐरे आकार
सी में वेरिएबल-आकार ऐरे (वीएलए) रनटाइम पर एक ऐरे के आकार को निर्दिष्ट करने की अनुमति देते हैं मॉलोक या नई जैसी गतिशील आवंटन तकनीकों का सहारा लिए बिना। यह एक निश्चित आकार के साथ सरणी घोषित करने के पारंपरिक दृष्टिकोण के विपरीत है।
आपके द्वारा प्रदान किया गया कोड रनटाइम पर निर्धारित आकार के साथ एक सरणी घोषित करने के मानदंडों को पूरा करता है:
int main(int argc, char **argv) { size_t size; cin >> size; int array[size]; // ... }
कंपाइलर समर्थन
इस कोड की वैधता वीएलए के लिए कंपाइलर के समर्थन पर निर्भर करती है। जबकि C99 मानक में VLA शामिल है, यह एक अनिवार्य सुविधा नहीं है। हालाँकि, जीसीसी सहित कई कंपाइलर वैकल्पिक एक्सटेंशन के रूप में वीएलए का समर्थन करते हैं। सरणी की आवश्यक मेमोरी. यह उसी तरह है जैसे यह स्टैक पर नियमित चर और सरणियों के लिए स्थान आवंटित करता है।
फायदे
वीएलए ओवरहेड और जटिलताओं के बिना सरणियों को आवंटित करने का एक सुविधाजनक तरीका प्रदान करता है गतिशील स्मृति आवंटन की. यह विशेष रूप से तब उपयोगी होता है जब रनटाइम तक सरणी का आकार ज्ञात नहीं होता है। सरणी घोषित होने से पहले पता होना चाहिए।
आवंटित मेमोरी को मुफ्त की तरह स्पष्ट रूप से हटाया नहीं जा सकता है। सरणी का जीवनकाल उस ब्लॉक तक ही सीमित है जिसमें इसे घोषित किया गया है। यदि आकार को प्रभावी ढंग से नियंत्रित नहीं किया जाता है तो अतिप्रवाह समस्याएँ।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3