编译此代码时出错:
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;
}
答案 0 :(得分:0)
您的筹码太小,而您应该使用动态分配(例如std::vector
或new
)。如果要继续使用堆栈分配,可以在编译器选项或命令行中增加堆栈大小(取决于您未声明的编译器)。
答案 1 :(得分:0)
错误是您的数组太大而无法将其存储在编译器的标准堆栈空间中。您可以尝试在在线Codechef编译器上编译代码。它具有非常大的堆栈容量。链接是:https://www.codechef.com/ide
或者当然,您可以使用std::vector
使用向量,或使用new
关键字动态分配您的数组(不是非常强烈推荐)。
答案 2 :(得分:-2)
为什么要创建此大小的数组?
为了提高内存效率,请尝试使用关键字new
声明的动态数组。示例:myArray = new int [10]
它们可以根据您的需要和内存效率进行扩展。