मैं malloc()
का उपयोग कर int*
डेटा प्रकार के साथ एक गतिशील सरणी बना रहा हूं। लेकिन समस्या यह है कि सरणी के अंत को कैसे जानना है? int*
डेटा प्रकार के लिए \0
के बराबर कोई नहीं है, तो, यह कैसे करें? फ़ंक्शन के आउट पैरामीटर के रूप में पास आकार? मुझे उम्मीद है कि यह आपके लिए स्पष्ट है। कोई भी मदद बहुत सराहनीय है।int * सरणी के अंत को कैसे जानें?
उत्तर
सी कुछ अन्य भाषाओं के रूप में सरणी लंबाई का प्रबंधन नहीं करता है।
typedef struct t_thing {
int* things;
size_t count;
} t_thing;
उपयोग में: जहाँ आपके गतिशील सरणी का अंत है
t_thing t = { (int*)malloc(sizeof(int) * n), n };
पूर्णांक के लिए \0
के बराबर कोई "आधिकारिक" नहीं है, लेकिन आप निश्चित रूप से अपने मूल्य का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आपके पूर्णांक दूरी का प्रतिनिधित्व करते हैं तो आप सरणी के अंत को इंगित करने के लिए सेंटीनेल मान के रूप में -1 (वैध दूरी नहीं) का उपयोग कर सकते हैं।
अपने पूर्णांक सरणी यथोचित किसी भीint
मूल्य शामिल कर सकते हैं, तो आप वापस आवंटित सरणी के आकार अपने कार्य करने के लिए एक अतिरिक्त पैरामीटर के साथ पारित कर सकते हैं।
मुझे आपको पसंद है। मैं '# EFEINE EON EOF' का भी उपयोग करूंगा। – Jack
आप NULL
का उपयोग अंतिम मूल्य के रूप में कर सकते हैं। आप सरणी के साथ एक स्ट्रक्चर में एक पूर्णांक जोड़ सकते हैं जो प्रविष्टियों की संख्या को ट्रैक करता है। या आप आकार को अलग से ट्रैक कर सकते हैं। हालांकि आप इसे कर सकते हैं।
आप int [] के लिए अंतिम मान के रूप में संभवतः NULL का उपयोग कैसे करेंगे? बाइट 00 00 00 00 का अर्थ केवल (int) 0 के रूप में किया जाएगा। –
बिल्कुल। यदि सरणी में कोई अन्य मान 0 नहीं है, तो आप टर्मिनेटर के रूप में 0 का उपयोग कर सकते हैं। –
और यदि कोई अन्य मान 42 नहीं है, तो आप 42 का उपयोग कर सकते हैं। उत्तर कम से कम मेरे लिए तात्पर्य है कि 'int' किसी भी तरह एक शून्य प्रकार है, जो निश्चित रूप से नहीं है। –
सी पता नहीं है
आप इस के लिए एक संरचना पर विचार करें। आपको सरणी के लिए आवंटित आकार को याद रखना चाहिए।
जब आप मॉलोक के साथ स्मृति आवंटित करते हैं, आवंटित बाइट्स की संख्या 'malloc'ated स्मृति की शुरुआत से पहले ही संग्रहीत की जाती है। यदि आप आकार जानते हैं, तो आप अंत को भी जानते हैं! यह सी, के & आर पुस्तक के बाइबल में समझाया गया है। इच्छा है कि मैं आपको पेज नंबर भी दे सकता हूं, लेकिन जब आप इसे देखते हैं तो आपको पता चलेगा।
- 1. एफ़टीपी स्वागत संदेश के अंत को कैसे जानें
- 2. एक कॉन्स सरणी के आकार को कैसे जानें?
- 3. UITableView.visibleCells के indexpath को कैसे जानें?
- 4. धुंध के कारण को कैसे जानें?
- 5. फ़ंक्शन के कॉलर क्लास को कैसे जानें
- 6. जावा चार सरणी int
- 7. सी - हस्ताक्षरित int सरणी रूपांतरण के लिए हस्ताक्षरित int
- 8. जावा int ... सरणी नोटेशन
- 9. स्टैक पर सरणी आकार निर्दिष्ट करने के लिए int से const int को कैसे परिवर्तित करें?
- 10. सरणी के अंत से स्लाइस एनएसएआरएआर
- 11. रूबी रिफैक्टरिंग: स्ट्रिंग सरणी को int सरणी में परिवर्तित करना
- 12. क्षमता: चार सरणी बनाम int सरणी
- 13. पृष्ठ कैसे जानें
- 14. BufferedReader के बाइट्स पढ़ने (ऑफ़सेट) को कैसे जानें?
- 15. एक्सप्रेसजेएस कैसे जानें?
- 16. int array को int में कैसे परिवर्तित करें?
- 17. डिवाइस की घनत्व को कैसे जानें?
- 18. इंटर्स को int [] array
- 19. सिस्टम के परिणाम कैसे जानें। Window.Forms.Help.ShowHelp
- 20. स्ट्रिंग रूपांतरण के लिए बाइट सरणी में स्ट्रिंग के अंत का पता लगाने के लिए कैसे?
- 21. हेरोकू, परियोजना के रूबी संस्करण को कैसे जानें?
- 22. आरपीएम में अंतर्निहित मैक्रो के मूल्य को कैसे जानें?
- 23. माता-पिता के सभी व्युत्पन्न वर्गों को कैसे जानें?
- 24. बाइट्स में स्ट्रिंग के आकार को कैसे जानें?
- 25. पायथन में फ़ाइल के एन्कोडिंग को कैसे जानें?
- 26. वेब पेज के वास्तविक आकार को कैसे जानें?
- 27. किसी jQuery ऑब्जेक्ट के प्रकार को कैसे जानें?
- 28. एचटीएमएल 5 कैनवास: आकार के लिए सीमा को कैसे जानें?
- 29. एक बाइट सरणी को एक int सरणी में कैसे परिवर्तित करें?
- 30. int
आप malloc() glob कुछ m memory (sizeof (int) * ELEMENTS) की तरह कुछ स्मृति का उपयोग कर रहे हैं। मुझे लगता है। फिर आप वास्तव में जानते हैं कि आकार में ELEMENTS, आप चर को सहेज सकते हैं और इसे अपने कार्यों में भेज सकते हैं। –