Mar*_*hya 0 c arrays stack runtime-error long-integer
int main() {
long long int n, m, j, l, a[1000000000][1000000000];
int k, i;
scanf("%lld", & n);
scanf("%lld", & m);
for (j = 0; j < n; j++) {
for (l = 0; l < m; l++) {
a[j][l] = 0;
printf("%d\n", a[j][l]);
}
}
for (j = 0; j < n; j++) {
for (l = 0; l < m; l++) {
printf("%d\n", a[j][l]);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我总是遇到运行时错误。有人可以建议我解决它吗???我需要这个来解决一个竞争性编程问题,其中棋盘可能有 1000000000*1000000000 个方格,我需要用它执行多项操作。
因为在大多数实现中,您不能创建那么大的局部变量。
你真的有 10000000000*10000000000 = 100000000000000000 字节的内存吗?
在大多数系统上,限制在 64k 到 10mibyte 之间。当然不是任何接近您尝试制作 [][] 大小的地方。
您需要使用malloc来尝试分配内存。局部变量是在运行时在堆栈上创建的,您的堆栈内存不足,导致程序崩溃。