これが私が実行した簡単なコードです
int a;
int main()
{
return 0;
}
次に、gccでコンパイルした後、
size a.out
bssとdataセクションに出力があります...次にコードをこれに変更しました
int a;
int main()
{
char *p = "hello";
return 0;
}
コンパイル後にサイズa.outで出力を見たとき、データセクションのサイズは同じままでした。しかし、文字列helloは、読み取り専用の初期化された部分にメモリが割り当てられることがわかっています。それでは、なぜデータセクションのサイズは同じままだったのでしょうか。