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

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日

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含