2011-02-13 12 views
5

थोड़ा ऑक्सीमोरोनिक शीर्षक! एक्सकोड उत्तर के लिए बोनस अंक लेकिन यह एक जीडीबी सवाल है।मैं gdb कैसे बता सकता हूं कि मेरी शून्य-लंबाई सरणी कितनी देर तक है?

यदि मेरे पास मानक है, तो स्थिर रूप से आकार का सरणी जीडीबी अपने सभी तत्वों को प्रिंट करेगा [और एक्सकोड मुझे इसे ब्राउज़ करने देगा] लेकिन अगर मेरे पास zero length array है, तो ऐसा नहीं होगा, क्योंकि यह नहीं जानता है। जाहिर है, मैं सरणी इंडेक्स को एक-एक करके प्रिंट कर सकता हूं, लेकिन मुझे पूरी चीज का डंप चाहिए।

मैं gdb कैसे कहूं कि सरणी के लिए आवंटित करने के लिए सरणी के लिए कितनी जगह आवंटित की गई है (या एक्सकोड को सरणी को देखने की अनुमति देने के लिए)। क्या यह भी संभव है?

+0

वास्तव में प्रोग्रामिंग से संबंधित प्रतीत नहीं होता है, लेकिन उसके यूज़नेट हस्ताक्षर कहते हैं "अंकल बॉब" (उद्धरण चिह्नों के साथ) का इस्तेमाल किया। उदाहरण के लिए: http://groups.google.com/group/comp.object/msg/34e0d53f2235bd93?hl=hi –

+1

करीबी वोट क्यों? मुझे अकसर किये गए सवाल से उद्धृत करते हैं: '* एक विशिष्ट प्रोग्रामिंग समस्या * एक सॉफ्टवेयर एल्गोरिथ्म * सॉफ्टवेयर उपकरण सामान्यतः प्रोग्रामर द्वारा प्रयोग किया जाता * मामलों प्रोग्रामिंग पेशे ' – Joe

+0

और जिसका यूज़नेट हस्ताक्षर का उपयोग के लिए अद्वितीय हैं कहते हैं "चाचा बॉब" ? मुझे लगता है कि गलत सवाल पर किसी का मतदान! – Joe

उत्तर

2

तो s->a टाइप है char [0] (जो एक जीसीसी एक्सटेंशन है), लेकिन आप जानते हैं कि यह वास्तव में 100 का सरणी है, आप इसे प्रिंट करने के लिए gdb में कास्ट का उपयोग कर सकते हैं:

(gdb) print *(char (*)[100])&s->a 
संबंधित मुद्दे

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