【发布时间】:2020-06-01 12:22:06
【问题描述】:
我有一个包含这样内容的文本文件
5 6
01111
11110
01000
01111
11010
11111
我想从这个文件中读取一个函数并从内容中创建一个二维数组。
第一行的两个数字是数组的大小和子数组的大小。
函数的结果应该是这样的数组
{{0,1,1,1,1}, {1,1,1,1,0},{0,1,0,0,0},{0,1,1,1,1},{1,1,0,1,0},{1,1,1,1,1}}
那我该怎么做呢?
现在我尝试做一个这样的函数但是它出错了
int** createArray(FILE *fp)
{
int xdim;
int ydim;
fscanf(fp, "%d %d", &xdim, &ydim);
int** arr = malloc(ydim * sizeof(*arr));;
for (int y = 0; y < ydim; y++)
{
arr[y] = malloc(xdim * sizeof(**arr));
fscanf(fp, "%d %d %d %d", arr[y]);
}
return arr;
}
【问题讨论】:
-
你自己尝试过什么?你有minimal reproducible example 可以给我们看吗?也请花一些时间阅读the help pages,阅读SO tour,阅读How to Ask,以及this question checklist。
-
将数组取消引用为
arr[y][x]非常令人困惑。考虑交换坐标的位置,使它们与数学中的顺序相同。