मुझे पता है कि वैश्विक और स्थिर चर .data
खंड में संग्रहीत किए गए हैं , और खंड में अनइंस्टॉल किए गए डेटा हैं .bss
। मुझे समझ में नहीं आता है कि हमारे पास असिंचित चर के लिए समर्पित खंड क्यों है? यदि रन के समय में एक अनइंस्टाल्यूटेड वैरिएबल का मान दिया गया है, तो क्या वैरिएबल अभी भी .bss
सेगमेंट में मौजूद है ?
निम्नलिखित कार्यक्रम में, a
में है .data
खंड, और b
में है .bss
खंड; क्या वो सही है? अगर मेरी समझ गलत है तो कृपया मुझे सही करें।
#include <stdio.h>
#include <stdlib.h>
int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9};
int b[20]; /* Uninitialized, so in the .bss and will not occupy space for 20 * sizeof (int) */
int main ()
{
;
}
इसके अलावा, निम्नलिखित कार्यक्रम पर विचार करें,
#include <stdio.h>
#include <stdlib.h>
int var[10]; /* Uninitialized so in .bss */
int main ()
{
var[0] = 20 /* **Initialized, where this 'var' will be ?** */
}