数组存储在C中的哪个位置?

时间:2017-11-11 05:32:16

标签: c arrays memory

当我们在C中声明一个数组时...数组基本上是一个存储有该数组基址的指针。

例如:

int *x=malloc(5);

为堆中的数组'x'提供内存

现在,我的问题是......将为这种类型的数组声明分配内存

int x1[5];

假设'x'和'x1'都在函数中声明。

'x1'在内存中的位置。 它是堆栈吗?还是在堆?

2 个答案:

答案 0 :(得分:0)

我相信int x1[5];会进入筹码。

答案 1 :(得分:-1)

如果int x1[5];未在任何函数中定义,则数组x1位于程序的bss段上,变量x1是全局数组。

如果int x1[5];在任何函数中定义,则在执行此函数期间,数组x1位于程序的堆栈中。