噜啦噜啦噜呼呼呼 2024-04-07 16:55 采纳率: 70.7%
浏览 1
已结题

C语言arr[1000][1000]后无法正常输入

这是为什么呀,为什么定义了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;
}

img

  • 写回答

3条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-04-07 16:55
    关注
    让阿豪来帮你解答,本回答参考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;
    }
    

    这里使用了双重指针来动态分配内存,以确保数组能够被正确地初始化和输入。同时,在程序结束时需要释放已分配的内存空间。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月16日
  • 已采纳回答 4月8日
  • 创建了问题 4月7日

悬赏问题

  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?