2008-12-12 16 views
5

मैं इसे कुछ इस तरह दिखता एक संरचना है कि एक और संरचना का एक सरणियों शामिल है। वे एक मॉड्यूल के विवरण के रूप में इरादा कर रहे हैं। मुझे लगता है कि ऐसा करने के लिए c99 यौगिक शाब्दिक साथ कोशिश की, लेकिन संकलक (जीसीसी) इसे पसंद नहीं किया:नेस्टेड संरचनाओं/सरणियों प्रारंभ


Bla test = 
{ 
    0, (Point[]) {(Point){1, 2}, (Point){3, 4}} 
}; 

मैं निम्नलिखित त्रुटियाँ मिलती है:

 
error: initializer element is not constant 
error: (near initialization for 'test') 

जब से मैं संशोधित करने की जरूरत नहीं है यह आवश्यकतानुसार मैं इसमें कई "const" डाल सकता हूं। क्या इसे संकलित करने का कोई तरीका है?

उत्तर

5

आप बस एक ही परिसर शाब्दिक सारिणी निर्मित एक यौगिक प्रत्येक तत्व के लिए शाब्दिक जरूरत नहीं है,:

Bla test = 
{ 
    0, (Point[]) {{1, 2}, {3, 4}} 
}; 

सुनिश्चित करें कि आप -std=c99 साथ संकलन करें।

+0

क्या गतिशील रूप से दो बिंदुओं के लिए स्मृति आवंटित करता है? – aib

+0

@ एआईबी: हां, यह दो शाब्दिक "बिंदु" संरचनाओं (स्थिर भंडारण अवधि के साथ फ़ाइल स्कोप पर है) के एक सरणी बनाता है और उन्हें इंगित करने के लिए "परीक्षण" के "foo" सदस्य को प्रारंभ करता है। यह एक शॉर्टकट है जो अलग-अलग सरणी को परिभाषित करने और इसे इंगित करने के लिए "foo" सदस्य को असाइन करने के बराबर है। –

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