【发布时间】:2016-04-05 23:48:56
【问题描述】:
如何正确地将文件中的值加载到另一个函数中的矩阵?
void someFunction(int ***matrix, n, m) {
int c, d;
FILE *fp = fopen("some.txt", "r"); // načtení souboru
for (c = 0; c < m; c++) {
for (d = 0; d < n; d++) {
fscanf(fp, "%i", &matrix[c][d]); //4th read throws error
}
}
}
int main() {
int i;
int **matrix;
int n = 3; // columns
int m = 2; // rows
first = (int **)malloc(n * sizeof(int*));
for (i = 0; i < n; i++)
first[i] = (int *)malloc(m * sizeof(int));
someFunction(&matrix, n, m);
free(matrix);
for (i = 0; i < n; i++)
free(first[i]);
}
fscanf(fp, "%i", &matice[c][d]) 对吗?
它在[1][0] 处失败(内存错误),但[0][0],[0][1],[0][2] 工作正常。我不确定我做错了什么。
【问题讨论】:
-
matice是什么?你的意思是matrix? -
@johnbollinger 是的,对不起,我的错,打错了。现在已经修改了。
标签: c multidimensional-array malloc