微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在用错误的calloc分配内存后,为什么索引出界数为0?

如何解决为什么在用错误的calloc分配内存后,为什么索引出界数为0?

我想问你一些关于我用calloc进行内存分配的疑问;

我正在尝试创建一个布尔2d矩阵,该矩阵用0表示false,用1表示true。 我有以下代码

// Create a 2D array
int **createArrayBool(int row,int col){
    // Allocate memory for 2D array
    int **arr = (int**) calloc(row,sizeof(int*));
    for ( int i = 0; i < row; i++ ){
        arr[i] = (int*) calloc(col,sizeof(int));
    }
    return arr;
}

在main()中,我调用了该函数

int **arr2d = createArrayBool(2,2);

我的疑问是,当我打印位置arr2d [1] [5]上的值时,我得到了0,但我只分配了col

谢谢您的回答。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。