【发布时间】:2016-11-15 04:27:11
【问题描述】:
编译这段代码时出现错误:
int i[720][720];
错误:进程返回 -1073741571 (0xC00000FD)。
我可以声明:
int i[719][719];
会发生什么?
编辑:
好吧...我确实像你说的那样。现在可以了。我试图纠正乘以大数的代码from here。
我也必须改变
if(carry < 10){
mat[i][j-(SIZE-1-i)]=carry;
carry=0;
}
到
if(carry < 10){
if (j-(SIZE-1-i) < 0) continue;
mat[i][j-(SIZE-1-i)]=carry;
carry=0;
}
【问题讨论】:
-
数组太大而无法放入堆栈。请改用
std::vector。 -
或
new或任何其他容器(std::array除外,它具有相同的效果)。 -
哦,好的...但是有没有可能增加堆栈的标准容量?我知道我只需要 [1000]x[1000] 数组。
-
取决于编译器。
-
增加堆栈大小可能不是正确的解决方案。如果使用其他编译器的其他人尝试编译您的代码怎么办?您应该改用
std::vector或new-allocated 数组。