gpt4 book ai didi

C - 创建带有值的动态矩阵

转载 作者:行者123 更新时间:2023-11-30 16:23:46 25 4
gpt4 key购买 nike

我尝试创建动态矩阵并使用 scanf 输入值。它仅适用于 1 行,当我增加错误时就会开始。无法从第一行取得进展,因此无法获取值。

int main()
{
int **matrix1;
BuildMatrix(&matrix1, 3, 3);

}

void BuildMatrix(int*** matrix, int row, int column)
{
int i, j, flag = 1, num;
*matrix = (int**)malloc(row * sizeof(int*));
if (*matrix == NULL)
{
printf("Not enough memory!\n");
}
else
{
for (i = 0; i < row && flag; i++)
{
*matrix[i] = (int* )malloc(column * sizeof(int));
if (*matrix[i] == NULL)
{
printf("Not enough memory!\n");
for (j = 0; j < i; j++)
{
free(*matrix[j]);
flag = 0;
}
free(*matrix);
}

}
if (flag)
{
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &*matrix[i][j]);
}
}
}
}
}

最佳答案

由于 operator precedence ,表达式 *matrix[i] 等于 *(matrix[i])。也就是说,它取消引用 matrix[i] 而不是 matrix

您需要使用(*matrix)[i]

关于C - 创建带有值的动态矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53896918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com