मेरे पास एक गतिशील सरणी myArr
है। myArr
में मेमोरी में क्या संग्रहीत किया जाता है जब हम SetLength
का उपयोग करते हैं? क्या यह '00' है? या अपरिभाषित?डेल्फी में सेटलेथेंथ के साथ उपयोग किए जाने पर गतिशील सरणी की स्मृति में क्या है?
SetLength
इस मामले में myArr
के लिए स्मृति के 16 बाइट आवंटित करता है।
myArr : array of byte;
SetLength(myArr, 16);
-1 यह डेल्फी 7 में सच नहीं है - जो भी दस्तावेज़ कहता है, System.pas में कोड शून्य बाइट्स –
के साथ गतिशील सरणी डेटा प्रारंभ करता है क्या आप इस तरह के व्यवहार को डेल्फी के भविष्य के संस्करणों में अब तक रहेंगे? डेल्फी 7 की अपनी टिप्पणी के लिए, कृपया दूसरा पैराग्राफ पढ़ें। – Vantomex
मौजूदा अनुप्रयोगों में किसी भी प्रतिगमन से बचने के लिए, मैं गारंटी नहीं दे सकता कि ईएमबी कोड नहीं बदल सका ... लेकिन वे इस तरह के विचारों के बारे में काफी रूढ़िवादी हैं ...वे जानते हैं कि बहुत से कोड इस अनियंत्रित व्यवहार पर भरोसा करते हैं। चूंकि संबंधित डेल्फी 5/6/7 ... 2010/XE system.pas कोड शुद्ध पास्कल में है, और 64 बिट में कनवर्ट करना आसान है (पीसीहर को नेटिवइन्ट या इस तरह कनवर्ट करें), मुझे कोई कारण नहीं मिला कि वे क्यों भविष्य में कार्यान्वयन को बदलना चाहिए: एक बार में सभी नई मेमोरी भरना व्यक्तिगत स्ट्रिंग, वेरिएंट और ऐसे आरंभ करने से तेज है। –