उत्तर
यदि सरणी वैश्विक, स्थिर, या स्वचालित चर (int array[10];
) है, तो sizeof(array)/sizeof(array[0])
काम करता है।
यदि यह एक गतिशील आवंटित सरणी (int* array = malloc(sizeof(int)*10);
) है या फ़ंक्शन तर्क (void f(int array[])
) के रूप में पारित किया गया है, तो आप रन-टाइम पर इसका आकार नहीं पा सकते हैं। आपको आकार कहीं भी स्टोर करना होगा।
ध्यान दें कि sizeof(array)/sizeof(array[0])
दूसरे मामले के लिए भी ठीक है, लेकिन यह चुपचाप गलत परिणाम देगा।
शायद सरणी क्षय समझाते हुए एक प्रश्न का जिक्र करें और इंगित करें? अक्सर विषय –
सी ++ नौसिखियों के लिए इस सी प्रश्न पर पहुंचने के लिए: [सीडीएस में सरणी के बारे में जो भी आप कभी भी जानना चाहते थे] (http://stackoverflow.com/q/4810664/140719) एक FAQ में। – sbi
http://stackoverflow.com/questions/5493281/c-sizeof-a-passed-array – delive
int len=sizeof(array)/sizeof(int);
काम करना चाहिए।
नहीं - कई मामलों में यह * काम * नहीं करेगा। –
यह काम करता है, हालांकि 'site_t len = sizeof (array)/sizeof (array [0]); 'यह थोड़ा बेहतर है (यानी यह अभी भी काम करता है जब सरणी तत्वों का डेटाटाइप बदल दिया गया है। –
@Grzegorz: हमें दिखाएं कि यह कैसे काम करता है इस सरणी के लिए: 'शून्य एफ (int सरणी []) {site_t len = sizeof (array)/sizeof (array [0]);} ' – sbi
तो सरणी स्थिर है आवंटित:
size_t size = sizeof(arr)/sizeof(int);
यदि सरणी गतिशील आवंटित (ढेर) है:
int *arr = malloc(sizeof(int) * size);
चर आकार आगमन का एक आयाम है जहां।
_msize(array)
Windows में या लिनक्स में malloc_usable_size(array)
गतिशील सरणी
दोनों malloc.h के भीतर स्थित हैं और दोनों एक size_t
वे उपयोगी हैं, लेकिन बहुत पोर्टेबल नहीं ... – glglgl
- 1. एक पूर्णांक सरणी के लिए चेकसम?
- 2. एक वर्ण सरणी के लिए आकार
- 3. एक पूर्णांक सरणी को अन्य
- 4. पूर्णांक सरणी
- 5. पूर्णांक सरणी
- 6. सी ++ सरणी के गतिशील आकार
- 7. पोस्टग्रेज़ पूर्णांक सरणी पैरामीटर के रूप में?
- 8. एक निश्चित आकार के बिना एक डबल सरणी परिभाषित करें?
- 9. एक सरणी बनने के लिए एक स्केलर या सरणी को
- 10. एक 2 डी सरणी खोजने के लिए सबसे साफ तरीका?
- 11. यदि सरणी के आकार से अधिक 1
- 12. स्ट्रिंग रूपांतरण के लिए बाइट सरणी में स्ट्रिंग के अंत का पता लगाने के लिए कैसे?
- 13. मैं एक पाइथन टुपल (बाइट सरणी) के एक पूर्णांक
- 14. एक कॉन्स सरणी के आकार को कैसे जानें?
- 15. खोजने के आउटपुट कैप्चरिंग। एक पार्टी सरणी
- 16. छंटाई पूर्णांक सरणी
- 17. PHP में एक सरणी में एक पूर्णांक को परिवर्तित करने के लिए कैसे?
- 18. प्रिंट हेक्साडेसिमल संख्याओं के रूप में एक पूर्णांक सरणी
- 19. पूर्णांक की सरणी के लिए डब्ल्यूएसडीएल घोषणा क्या है?
- 20. का पता लगाने के SimpleXML सरणी संपत्ति
- 21. ऑपरेंड सरणी के आकार को [] "पता" कैसे हटाता है?
- 22. इंटरलाक्ड। एक पूर्णांक सरणी में वृद्धि
- 23. डाली चार सरणी पूर्णांक
- 24. एक 3 डी सरणी के प्रत्येक परत करने के लिए एक समारोह लागू करें, एक सरणी
- 25. पीआईएल छवि सरणी (सरणी के लिए numpy सरणी) - पायथन
- 26. गतिशील आकार के साथ सरणी कैसे बनाएं? गतिशील सरणी का सामान्य उपयोग (शायद पॉइंटर्स भी)?
- 27. अधिभार ऑपरेटर << सरणी के लिए
- 28. सी # .NET में एक भी मूल्य के साथ एक पूर्णांक सरणी प्रारंभ
- 29. फिक्स्ड आकार सरणी
- 30. जी ++: बाध्य सरणी एक पूर्णांक लगातार कोड के साथ
आप इस सरणी कैसे लागू किया लौटने के लिए काम करना चाहिए? सिद्धांत रूप में आप ओ (1) (ज्ञात आकार), ओ (एन) (शून्य-समाप्त), या असंभव में सरणी आकार को जानते हैं। – kennytm
आमतौर पर सरणी स्थिर चर के रूप में बनाई जाती हैं और इसे बनाने के दौरान आपको कुछ लंबाई बीतनी होगी। – Jack
@ जैक: सरणी "आमतौर पर" स्थिर क्यों होगी ??? – sbi