三千里外欲封侯 2023-12-19 21:00 采纳率: 86.4%
浏览 2

为啥要初始化返回的二维数组


int** generateMatrix(int n, int* returnSize, int** returnColumnSizes) 
{
    *returnSize=n;
    *returnColumnSizes = (int*)malloc(sizeof(int) * n);
    int** arr=(int*)malloc(sizeof(int*)*n);
    int i;
    for(i = 0; i < n; i++) 
    {
        arr[i] = (int*)malloc(sizeof(int) * n);
        (*returnColumnSizes)[i] = n;
    }
    int loop=n/2;//循环次数即矩阵圈数
    int count=1;
    int mid=n/2;//如果mid为奇数,要在最中间补上count++
    int offset=1;
    int startx=0;
    int starty=0;
    while(loop--)
    {
        int i=startx;
        int j=starty;
        //从左到右(左开右闭)
        while(j<starty+n-offset)
        {
            arr[i][j]=count++;
            j++;
        }
        //从上到下
        while(i<starty+n-offset)
        {
            arr[i][j]=count++;
            i++;
        }
        //从右到左
        while(j>starty)
        {
            arr[i][j]=count++;
            j--;
        }
        //从下到上
        while(i>startx)
        {
            arr[i][j]=count++;
            i--;
        }
        //循环完一圈
        offset+=2;
        startx++;
        starty++;
    }
    if(n%2)
    {
        arr[mid][mid]=count;
    }
    return arr;
}

malloc不是已经开辟了一块空间了了吗

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-25 21:13
    关注

    【相关推荐】




    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月19日

悬赏问题

  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错