我尝试运行这个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