LeeZTao 2022-11-04 17:42 采纳率: 80%
浏览 19
已结题

leetcode54通过但是再vs上会有警告

leetcode54 螺旋数组
leetcode该题是通过的
但是在vs上编写的时候却会有警告
分配内存报错内存溢出,vs2022报错ret是0字节的数组
请问为什么会出现这样的警告,可以忽略这样的警告吗?

img

enum action {Toright, Tobottom, Toleft, Totop};
int* spiralOrder(int** matrix, int matrixSize, int* matrixColSize, int* returnSize) {
    *returnSize = 0;
    if (matrixSize == 0)
        return 0;
    int len = matrixSize * (*matrixColSize);
    int* ret = (int*)malloc(sizeof(int) * len);
    if (ret == NULL)
        exit(-1);
    int top = 0;
    int bottom = matrixSize - 1;
    int left = 0;
    int right = *matrixColSize - 1;
    enum action act = Toright;
    int count = 0;
    int i = 0, j = 0;
    
    while (count != len - 1)
    {
        switch (act)
        {
        case Toright:
        {
            for (; j < right; j++)
                ret[count++] = matrix[i][j];
            top++;
            act++;
        }break;
        case Tobottom:
        {
            for (; i < bottom; i++)
                ret[count++] = matrix[i][j];
            right--;
            act++;
        }break;
        case Toleft:
        {
            for (; j > left; j--)
                ret[count++] = matrix[i][j];
            bottom--;
            act++;
        }break;
        case Totop:
        {
            for (; i > top; i--)
                ret[count++] = matrix[i][j];
            left++;
            act = Toright;
        }break;
        }
    }
    ret[count] = matrix[i][j];
    

    *returnSize = len;
    return ret;
}

  • 写回答

1条回答 默认 最新

  • CGod C/C++领域新星创作者 2022-11-04 23:16
    关注

    可以忽略,VS2019以上的编译器太过严格,有时候是一种过分的检查

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月5日
  • 已采纳回答 11月5日
  • 修改了问题 11月4日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线
  • ¥15 求TYPCE母转母转接头24PIN线路板图
  • ¥100 国外网络搭建,有偿交流
  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案