使用指针指针创建2d数组

时间:2014-09-15 16:56:38

标签: c arrays pointers matrix

我正在尝试使用指针指针创建一个二维数组并撞墙。我尝试扫描值以存储在第一个矩阵(第38行)时,我的程序崩溃。我想在[{1}}和m1[i][j]地址中存储一个值吗?

我提供了以下代码(直至崩溃)。这里发生了什么?为什么在矩阵1的输入中扫描时会崩溃?

m1[i][j] == *(*m1+i)+j

1 个答案:

答案 0 :(得分:1)

这条线不对:

        scanf("%lf\t", *(*(m1+i)+j)); //Scanning input

*(*(m1+i)+j)的类型为double,而不是double*,这是scanf所需的内容。

您需要使用

        scanf("%lf\t", *(m1+i)+j); //Scanning input

或更简单的形式:

        scanf("%lf\t", &m1[i][j]); //Scanning input

您在其他循环中有类似的错误。