/ / एक संरचना के भीतर एक संरचना शुरू [बंद] - सी ++, सी, संरचना

एक संरचना [बंद] के भीतर एक संरचना शुरू करना - सी ++, सी, संरचना

मैं एक ऐसी संरचना को शुरू करने की कोशिश कर रहा हूं जो बहुस्तरीय सदस्यों के साथ एक और संरचना के भीतर है। मान लें कि मैं 2 int सदस्यों के साथ एक संरचना में प्रवेश करना चाहता हूं तो मैं निम्नलिखित का उपयोग कर सकता हूं:

firstStruct struct1 = { 5 , 7 };

लेकिन कहें कि मैं एक ही संरचना शुरू करना चाहता हूं लेकिन इस बार यह एक और संरचना का सदस्य है:

(द्वितीय संरचना सदस्य char और firstStruct हैं)

secondStruct struct2 = { "A" , { 6 , 8 } };

Stucts:

typedef struct firstStruct
{
int a;
int b;
} firstStruct;

typedef struct secondStruct
{
firstStruct a;
char b;
} secondStruct;

लेकिन यह काम नहीं करता है। मैं यह कैसे करु?

(मैंने इस विषय के साथ अन्य पदों की खोज की है, लेकिन एक नहीं मिला है। शायद मैंने गलत सवाल को संबोधित किया है।)

धन्यवाद!

उत्तर:

जवाब के लिए 0 № 1

मेरे लिए काम करता है ...

struct firstStruct {int a, b;};

firstStruct struct1 = { 5 , 7 };

struct secondStruct {char a; firstStruct b;};

secondStruct struct2 = { "A" , { 6 , 8 } };

उत्तर № 2 के लिए 1

उपयोग

secondStruct struct2 = {{ 6 , 8} , "A"};

आदेश मामलों।


जवाब के लिए 0 № 3

आपने गलत तरीके से अपना प्रारंभिक आदेश दिया है। Structs के साथ, आपको प्रत्येक सदस्य को सही स्थान पर प्रारंभ करने की आवश्यकता है। आपने चार से पहले प्रथम संरचना घोषित की है, इसलिए आपको इसे {{5, 7}, "ए"} जैसे चार से पहले प्रारंभ करना होगा।


जवाब के लिए 0 № 4

आम तौर पर इसे लिखना चाहिए जैसा आपने लिखा था। एकमात्र समस्या जो मैं देख सकता हूं वह यह है कि आपको चर के क्रम को पूरा करना होगा ...

struct firstStruct
{
int a;
int b;
};

struct secondStruct
{
S1 a;
char b;
};

secondstruct = { { 1, 2 }, 3 };

एक संरचना में एक संरचना शुरू करने के लिए मुझे लगता है कि इसे ब्रैकेट में रखने की आवश्यकता है (हालांकि यह आपके उदाहरण में सही है) ...