我嘗試運行這個C++代碼作爲Windows控制檯應用程序,但是當它啓動時,它立即關閉,只給我一個Windows通常給我的標準「這個程序已經停止工作」的錯誤。我用這些二維數組(C++)耗盡內存嗎?
該方案的主要功能是(與位的額外的代碼後它忽略):
int main() {
cout << "FIRST LINE";
int fract[501][501];
int rfract[501][501];
int nufract[501][501];
int nurfract[501][501];
int snufract[501][501];
int snurfract[501][501];
system("PAUSE");
return 0;
}
有趣的是,如果我僅具有第一2個陣列,該程序運行良好,但如果我有其他4個數組(甚至只有其中一個),程序在啓動時崩潰。我使用的是具有4 GB內存的計算機,並且我還沒有收到任何有用的錯誤消息,但似乎是這樣的問題。如果我將它們的大小更改爲[101][101]
(從大約1.2 MB到大約50kB),問題就解決了,但我沒有更多的空間來輸入函數。有沒有辦法解決這個問題?
你可以嘗試在運行時分配它們;堆通常比堆棧大很多。 – Bojangles 2012-04-28 00:55:44