首页 > 解决方案 > 尝试在矩阵的单元格中添加值时写入无效

问题描述

我正在尝试在矩阵中添加值。对于第一行来说,一切都很顺利。但是,当我尝试访问第二行(如果有的话)时,我得到了无效的写入。

这是我写的不同版本:

  1. 垫[i][j]
  2. *(*(mat + i) + j)
  3. 垫子[i * N + j]
int** matrice(int N, int M){
    int **mat = (int **)malloc(N * sizeof(int*));
    for(int i = 0; i < N; i++) mat[i] = (int *)malloc(M * sizeof(int));

    for (int i = 0; i < N; i++){
        for (int j = 0; i < M; j++){
            //mat[i][j] = i+j;
        }
    }

    return mat;
}

标签: cpointersmatrix

解决方案


您在用作索引的嵌套for循环中有一个错误j,但是,您与i

for (int j = 0; i < M; j++)

应该

for (int j = 0; j < M; j++)

推荐阅读