के लिए स्मृति आवंटन मान लीजिए निम्नलिखित कोड:सी structs, सूचक और खेतों
struct c {
char* name;
};
int main(int argc, char *argv[]) {
struct c c1;
c1.name = "Ana";
printf ("%s\n",c1.name);
return 0;
}
मेरी पहली प्रतिक्रिया को लगता है कि मैं कुछ जगह आवंटित करने के लिए आवश्यक हो गया होता, या तो ढेर पर, या द्वारा एक स्पष्ट char name[] = "Anna"
, लेकिन काम के ऊपर मेरा उदाहरण। क्या संकलक सिर्फ उस खंड को डेटा सेगमेंट में संग्रहीत कर रहा है और इसे इंगित करता है? दूसरे शब्दों में, यह है कि
struct c {
char* name = "Ana";
};
धन्यवाद।
+1 वास्तव में प्रश्न का उत्तर देने के लिए –
ठीक है, मुझे लगता है कि मुझे यह मिल गया है। यह स्पष्ट करता है कि यह आपकी "स्थिर भंडारण अवधि" है, जिसका अर्थ है कि यह वास्तव में संकलन समय पर डेटा सेगमेंट में है, और उसके बाद संकलक स्पष्ट रूप से कहां इंगित करता है। धन्यवाद। –