gpt4 book ai didi

c - 通过引用和扫描值传递矩阵

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:15 25 4
gpt4 key购买 nike

我正在尝试将值扫描到一个矩阵中,该矩阵通过对函数的引用传递并且未编译。怎么了?我认为问题出在 scanf 上,但我不知道如何解决。

#include <stdio.h>
#include <stdlib.h>

int** initMatrix(int lines, int columns) {
int i;
int** matrix;
matrix = (int**) calloc(lines, sizeof(int*));
for (i = 0; i < lines; i++) {
matrix[i] = (int*) calloc(columns, sizeof(int));
}
return matrix;
}

void fillMatrixValues(int*** matrixA, int lines, int columns) {
int i, j;
for (i = 0; i < lines; i++) {
for (j = 0; j < columns; j++) {
scanf("%d", matrixA[i][j]);
}
}
}

void printMatrix(int** matrix, int lines, int columns) {
int i, j;
for (i = 0; i < lines; i++) {
for (j = 0; j < columns; j++) {
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
}

void main() {
int** matrixA;
int lines = 2, columns = 2;
matrixA = initMatrix(lines, columns);
fillMatrixValues(&matrixA, lines, columns);
printMatrix(matrixA, lines, columns);
}

最佳答案

void main -> 未定义的行为

使用

int main(void)

int main(int argc, char ** argv)

你应该检查scanf的返回值

if (scanf("%d", matrixA[i][j]) != 1)
{
// failed
}

下一个问题

void fillMatrixValues(int ***matrixA, int lines, int columns)
fillMatrixValues(&matrixA, lines, columns)

void fillMatrixValues(int **matrixA, int lines, int columns)
fillMatrixValues(matrixA, lines, columns)

关于c - 通过引用和扫描值传递矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45583573/

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