सी struct सरणी तत्वों में। इसके अलावा आप इस तरह से एक संरचना शुरू नहीं कर सकते हैं। सी सरणी स्थिर हैं, यानी कोई भी अपने आकार को गतिशील रूप से नहीं बदल सकता है।
struct का एक सही घोषणा के बाद
struct potNumber{
int array[20];
char theName[10][20];
};
कैसा लगेगा और आप इसे इस तरह से प्रारंभ:
struct potNumber aPot[3]=
{
/* 0 */
{
{10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 /* up to 20 integer values*/ },
{"Half-and-Half", "Almond", "Raspberry", "Vanilla", /* up to 10 strings of max. 20 characters */ }
},
/* 1 */
{
{10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 /* up to 20 integer values*/ },
{"Half-and-Half", "Almond", "Raspberry", "Vanilla", /* up to 10 strings of max. 20 characters */ }
},
/* 2 */
{
{10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 /* up to 20 integer values*/ },
{"Half-and-Half", "Almond", "Raspberry", "Vanilla", /* up to 10 strings of max. 20 characters */ }
}
};
लेकिन, मुझे यकीन है कि यह नहीं है कि आप क्या चाहते हूँ।
struct IntArray
{
size_t elements;
int *data;
};
struct String
{
size_t length;
char *data;
};
struct StringArray
{
size_t elements;
struct String *data;
};
/* functions for convenient allocation, element access and copying of Arrays and Strings */
struct potNumber
{
struct IntArray array;
struct StringArray theNames;
};
व्यक्तिगत तौर पर मैं दृढ़ता से नग्न सी सरणियों का उपयोग कर के खिलाफ सलाह: यह करने के लिए समझदार तरीका कुछ बॉयलरप्लेट कोड की आवश्यकता है। सहायक स्ट्रक्चर और कार्यों के माध्यम से सबकुछ करना आपको बफर से नीचे/ओवररन्स और अन्य परेशानी से साफ़ करता है। प्रत्येक गंभीर सी कोडर एक समय-समय पर सामान के साथ एक वैकल्पिक कोड लाइब्रेरी बनाता है।
आपको क्या त्रुटियां मिलती हैं? –
क्या वाकई आपकी 'संरचना' को परिभाषित किया गया है? – birryree