2010-05-03 16 views
8

मुझे पता है कि कैसे एक चर लंबाई सरणी प्रबंधित किया जाता है (क्या अतिरिक्त चर या डेटा संरचनाओं आदेश चर लंबाई सरणियों के लिए में ढेर पर रखा जाता है) चाहते हैं।चर लंबाई सरणी

बहुत बहुत धन्यवाद।

उत्तर

4

यह सिर्फ एक गतिशील आकार सरणी (कार्यान्वयन पर निर्भर है, लेकिन सबसे अधिक स्टैक पर)। यह बहुत ज्यादा पुराने दिनों में alloca तरह है, अपवाद के साथ कि sizeof जिसका मतलब है कि सरणी का आकार भी कहीं संग्रहित किया जाना चाहिए सरणी के वास्तविक आकार, वापस आ जाएगी (कार्यान्वयन पर निर्भर है और साथ ही, लेकिन शायद बहुत ढेर पर)।

+1

में जावा या वेक्टर में ऐरेलिस्ट, यह पूरी तरह से सच नहीं है, क्योंकि इसे बनाए जाने के बाद 'एलोका()' सरणी के आकार से पूछताछ करने का कोई तरीका नहीं था, लेकिन 'आकार' vLAs पर काम करता है (इसलिए यदि आप सरणी पर 'sizeof' कॉल करते हैं, वह आकार कहीं भी रखा जाना चाहिए)। – caf

+0

@caf: अच्छा बिंदु - मुझे लगता है कि आकार को कहीं भी (कार्यान्वयन-निर्भर) संग्रहीत करने की आवश्यकता है - मैं अपना जवाब अपडेट करूंगा। –

1

चर लंबाई सरणियों के आकार संकलन समय के बजाय रन-टाइम पर निर्धारित किया जाता है,।
जिस तरह से प्रबंधित किया गया है वह संकलक पर निर्भर करता है।
उदाहरण के लिए, जीसीसी, ढेर पर स्मृति आवंटित करता है।
लेकिन कोई विशेष संरचना नहीं है। यह सिर्फ एक सामान्य सरणी है, जिसका आकार रन-टाइम पर जाना जाता है।

-2

वैकल्पिक रूप से आप कुछ कंटेनरों का उपयोग कर सकते हैं, उदा। सी/सी ++

+0

-1 प्रश्न के साथ कुछ भी नहीं करना (सी 99 की सुविधा कैसे लागू की जा सकती है)। –

संबंधित मुद्दे