我做了以下代碼來檢查內存中的數據分配。我有一個4 GB
的RAM,我知道外部變量存儲在內存的靜態數據空間中,自動變量在堆棧中。
A 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;
}
更好地利用堆... – Evgeny