面向答案C语言 2022-10-20 02:04 采纳率: 63.6%
浏览 30
已结题

请问:为何我这样声明二维数组的时候力扣会报错呢?力扣中国版 64. 最小路径和

int minPathSum(int** grid, int gridSize, int* gridColSize){
// int** record=malloc(sizeof(int*)*gridSize);
int record[gridSize][gridColSize[0]];
memset(record, -1, sizeof(record));
for(int row=0;row<gridSize;row++){
    for(int col=0;col<gridColSize[0];col++){
    if(row==0&&col==0){
    record[0][0]= grid[0][0];
    continue;
    }    
    int min=INT_MAX;
    if(row-1>=0){
        int upMin=record[row-1][col];
        min=fmin(min,upMin);
    }

    if(col-1>=0){
        int leftMin=record[row][col-1];
        min=fmin(min,leftMin);
    }
    record[row][col]=min+grid[row][col];
    }
}
return record[gridSize-1][gridColSize[0]-1];
}

为什么不能用malloc声明二维数组呢 是我哪里做错了么
将第三行的代码换成第二行(int** record=malloc(sizeof(int*)*gridSize);) 力扣就会报错

img


以上为报错内容 如果换成第三行的代码(int record[gridSize][gridColSize[0]];) 即可顺利通过

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-10-20 04:14
    关注

    你这malloc 只是申请了二维数组的行指针空间,每一行还需要再分配空间才行啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月28日
  • 已采纳回答 10月20日
  • 创建了问题 10月20日

悬赏问题

  • ¥20 修改光猫sn的时候提示失败
  • ¥15 java大作业爬取网页
  • ¥15 怎么获取欧易的btc永续合约和交割合约的5m级的历史数据用来回测套利策略?
  • ¥15 有没有办法利用libusb读取usb设备数据
  • ¥15 为什么openeluer里面按不了python3呢?
  • ¥15 关于#matlab#的问题:训练序列与输入层维度不一样
  • ¥15 关于Ubuntu20.04.3LTS遇到的问题:在安装完CUDA驱动后,电脑会进入卡死的情况,但可以通过键盘按键进入安全重启,但重启完又会进入该情况!
  • ¥15 关于#嵌入式硬件#的问题:树莓派第一天重装配置python和opencv后第二天打开就成这样,瞎捣鼓搞出来文件夹还是没把原来的界面调回来
  • ¥20 Arduino 循迹小车程序电路出错故障求解
  • ¥20 Arduino 循迹小车程序电路出错故障求解