You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下C语言动态二维数组赋值触发EXC_BAD_ACCESS错误的问题求助

MacOS下C语言动态二维数组赋值触发EXC_BAD_ACCESS错误的问题求助

大家好,我是MacOS用户,最近写C语言代码时碰到了一个问题:我想给动态分配的二维数组所有元素赋值为0,但编译运行后触发了错误:

Exception has occurred. EXC_BAD_ACCESS (code=1, address=0x0)

错误直接指向arr[i][j] = 0;这一行语句。

以下是我的完整代码:

#include <stdlib.h>
#include <stdio.h>

#define SIZE 8

/* assigns 0 to all elements of 2d array */
void clearArr(int **arr, int rows, int columns)
{
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < columns; j++)
        {
            arr[i][j] = 0;
        }
    }
}

int main(void)
{
    int **arr = (int**)malloc(sizeof(int) * (size_t)SIZE);
    for (int i = 0; i < SIZE; i++)
    {
        arr[i] = (int*)malloc(sizeof(int) * (size_t)SIZE);
    }

    clearArr(arr, SIZE, SIZE);

    for (int i = 0; i < SIZE; i++)
    {
        free(arr[i]);
    }
    free(arr);

    return 0;
}

我还尝试把出错的语句替换成((arr + i) + j) = 0;,但问题依然没有解决,想请教各位大佬这到底是哪里出了问题,该怎么修复?

备注:内容来源于stack exchange,提问作者somewhatshrimp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 08:08:11