#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
float x[1000][1000];
return 0;
}
我得到“s.exe 中 0x01341637 处的第一次机会异常:0xC00000FD:堆栈溢出。”为什么?
最佳答案
您的数组太大,无法放入堆栈。您没有足够的堆栈空间容纳 1000 * 1000
元素。
您需要在堆上分配数组。您可以使用 new
关键字来执行此操作,但更简单的方法是仅使用 std::vector
。
std::vector<std::vector<float> > floats(1000);
for (unsigned i = 0; i != floats.size(); ++i) floats[i].resize(1000);
这将为您提供一个二维浮点 vector ,每个 vector 有 1000 个元素。
关于c++ - 简单数组导致异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4629712/