मैं सी सी हार्ड वे सीखने के माध्यम से काम कर रहा हूं और अभ्यास 16 में कुछ समझने के लिए संघर्ष कर रहा हूं: स्ट्रक्चर और पॉइंटर्स उन्हें।सी संरचना परिभाषा के अंदर एक नेस्टेड पॉइंटर क्यों है?
struct Person *Person_create(char *name, int age, int height, int weight)
{
struct Person *who = malloc(sizeof(struct Person));
assert(who != NULL);
who->name = strdup(name);
who->age = age;
who->height = height;
who->weight = weight;
return who;
}
मैं समझता हूं कि संरचना व्यक्ति संरचना की शुरुआत में एक सूचक (* person_create) देता है। लेकिन व्यक्ति के अंदर तुरंत घोंसला करने वाली व्यक्ति की दूसरी संरचना परिभाषा क्यों है? इशारा करते हुए * कौन?
क्या कोई इस पर मेरे लिए कुछ प्रकाश डाल सकता है। या मुझे सी
हम 'संरचना व्यक्ति' –
की परिभाषा को याद कर रहे हैं (लेकिन अनुमान लगा सकते हैं)। 'Person_create' फ़ंक्शन 'व्यक्ति' को पॉइंटर देता है। 'कौन' चर उस मान को रखता है जो फ़ंक्शन द्वारा वापस किया जाता है। आप स्मृति आवंटित करते हैं, और स्मृति की स्थिति की एक प्रति सहेजते हैं। इसके बाद आप आवंटित स्मृति के स्थान को वापस करने से पहले इस संरचना के विभिन्न क्षेत्रों को सेट करते हैं, जो इस मामले में है, 'व्यक्ति' की शुरुआत। (आप निरंतर उपयोग के साथ उनमें से लटका पाते हैं) :) - पॉइंटर्स के पास एक पुस्तक में पृष्ठ संख्याओं के लिए एक समान सादृश्य है - वे आपको बताएंगे कि कहां ढूंढना है (सूचक के प्रकार से) क्या होगा । – enhzflep