我做了以下代码来检查内存中的数据分配。我有一个 RAM,4 GB
我了解到外部变量存储在内存的静态数据空间中,而自动变量存储在堆栈上。
一个gcc -v
命令给出Thread model: win32
。如果我使用auto_array
,程序就会崩溃。但它不会发生在ext_array
. 我怎么知道内存的确切大小stack
和静态数据空间?还有其他影响分配的因素吗?
#include <stdio.h>
#define MB 1024*1024
char ext_array[1*1024*MB];
int main()
{
//char auto_array[10*MB];
return 0;
}