这是为什么呀,为什么定义了arr[1000][1000]之后就没法正常输入了 衰
#include<stdio.h>
int main()
{
int arr[1000][1000],i,j; //dp[i][j]表示走到arr[i][j]能拿到的最大金币数
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
scanf("%d",&arr[i][j]);
return 0;
}
这是为什么呀,为什么定义了arr[1000][1000]之后就没法正常输入了 衰
#include<stdio.h>
int main()
{
int arr[1000][1000],i,j; //dp[i][j]表示走到arr[i][j]能拿到的最大金币数
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
scanf("%d",&arr[i][j]);
return 0;
}
让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言问题是在定义一个1000x1000的二维数组后无法正常输入数据。可能的原因是数组太大,导致栈溢出,从而影响到读取输入的操作。解决方法是将数组定义在堆上,或者使用动态分配内存的方法。 示例代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
int **arr, i, j;
//allocate memory for the array
arr = (int**)malloc(1000 * sizeof(int*));
for(i=0; i<1000; i++){
arr[i] = (int*)malloc(1000 * sizeof(int));
}
//read input values
for(i=0; i<1000; i++){
for(j=0; j<1000; j++){
scanf("%d", &arr[i][j]);
}
}
//free memory
for(i=0; i<1000; i++){
free(arr[i]);
}
free(arr);
return 0;
}
这里使用了双重指针来动态分配内存,以确保数组能够被正确地初始化和输入。同时,在程序结束时需要释放已分配的内存空间。