初期化されていないデータは、変更後にどこに保存されるのでしょうか?
例えば、
コード内で何らかの値に初期化されるすべての変数は、.data セクションに格納されます。
初期化されていないすべての変数は、コンパイラによって 0 に初期化され、.bss セクションに格納されます。
ここで、コードで 10 個の整数の配列を定義するとします。ただし、この配列の要素は指定しません。したがって、配列のすべての整数はコンパイラによって 0 に初期化され、40 バイトが .bss セクションに予約されます。
この後、配列にデータを書き込みますが、.bss セクション自体のデータを変更しますか?
#include <stdio.h>
#include <math.h>
int main(int argc, char **argv)
{
int i;
/* 10 integers are initialized to 0 and stored in the .bss section */
unsigned int numbers[10];
/* write data to array */
for(i=0;i<10;i++)
{
numbers[i]=pow(2,i);
}