我有一個程序需要在C中聲明一個大小爲1000000的大整數數組(使用GNU GCC編譯器)。我試圖用兩種不同的方式聲明數組。主函數內部大量內存的靜態分配
兩種可能的代碼是:
#include <stdio.h>
int arr[1000000];
int main()
{
return 0;
}
和
#include <stdio.h>
int main()
{
int arr[1000000];
return 0;
}
後者版本運行期間掛起。可能的原因是什麼?
非常感謝!
如果需要,您通常可以將堆棧大小上移到gcc編譯器選項。你應該可以讓gcc在編譯過程中標記堆棧溢出。 – Paul 2009-12-12 06:18:51
@Paul當然,由於單獨編譯,大多數堆棧溢出只能在鏈接時標記出來? – 2009-12-12 11:22:50
@Pascal:只有一些...遞歸使其不確定 - 你永遠不知道運行時有多深 – 2009-12-12 13:39:11