我想知道未初始化的数据修改后会存放在哪里?
例如,
在代码中初始化为某个值的所有变量都将存储在 .data 部分中。
所有未初始化的变量,将由编译器初始化为 0 并存储在 .bss 部分中。
现在,假设我在代码中定义了一个包含 10 个整数的数组。但是我没有指定这个数组的元素。因此,编译器会将数组的所有整数初始化为 0,并在 .bss 部分中保留 40 个字节。
在此之后,我将一些数据写入数组,它会修改 .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);
}