किसी सरणी को स्मृति आवंटित करने के दो तरीके हैं, जिनमें से शुरुआत शुरुआत में अज्ञात है। सबसे आम तरीका यहmalloced सरणी वीएस। परिवर्तनीय-लंबाई-सरणी
int * array;
... // when we know the size
array = malloc(size*sizeof(int));
तरह malloc
उपयोग कर रहा है लेकिन यह हम आकार का पता बाद सरणी परिभाषित करने के लिए C99 में भी मान्य है।
... // when we know the size
int array[size];
वे बिल्कुल समान है?
चूक गए दूसरे, यहां तक कि C99 में, नहीं हमेशा वैध है। सी 99 §6.10.8.3 सशर्त फ़ीचर मैक्रोज़ के मुताबिक, एक कार्यान्वयन ** __ एसटीडीसी_NO_VLA __ ** और *** *** *** को परिभाषित नहीं कर सकता है, परिवर्तनीय लंबाई सरणी लागू करें, और * अभी भी मानक अनुपालन में हो। * – WhozCraig
** यह एक नहीं है डुप्लिकेट प्रश्न **! संदर्भित प्रश्नों में से कोई भी मतभेदों पर ब्योरा नहीं देता है। – Jens
@WozozCraig AFAIK, यह 2011 की बात है। मेरे पास ऐसा कोई अनुभाग नहीं है जो मेरे पास है जो सी 99 मानक की प्रतिलिपि बनता है। –