【问题标题】:random value in twodimensional array in cc中二维数组中的随机值
【发布时间】:2015-05-28 16:32:36
【问题描述】:

好的,我有一个 int 的二维数组,它使用这个来创建:

int **matrix;
matrix = malloc(n * sizeof(int*));
for (int i = 0; i < n ; i++) {
    matrix[i] = malloc(sizeof(int));
}

现在我将每个字段都设置为 0。 下一步是用值填充它。因此,我从已打开的文件中读取值。

while (fscanf(f2, "%s -> %[^;\n]%*c", start, ziel) == 2) {
    intomatrix(start, ziel, &graph);
}

intomatrix 只是改变数据并将其放入矩阵中

matrix[start][ziel] = 1;

现在当我手动设置时(不使用while循环)

matrix[2][0] = 1

并打印矩阵。不仅 (2,0) 而且 (0,4) 设置为 1。 现在应该有使用 matrix[0][4] 的方式了。

这也发生在其他领域。 (2,0) 也设置 (1,4)。

【问题讨论】:

  • matrix[i] = malloc(sizeof(int)); 分配 1 个元素的数组。应该是matrix[i] = malloc(ELEMENTS*sizeof(int));
  • 哇...@WeatherVane 这就是问题所在。现在它解决了。谢谢 :)

标签: c arrays matrix


【解决方案1】:

应该这样:

matrix[i] = malloc(sizeof(int));

是一个整数数组还是一个整数?如果不是,您有多行但只有一列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2012-08-21
    • 2014-11-13
    • 2015-10-24
    • 1970-01-01
    • 2018-11-11
    相关资源
    最近更新 更多