鉴于:
mazePointer mp = ...;
mp->mazeMatrix[0][0] = 'H';
就个人而言,我宁愿不在 typedef 中隐藏指针,所以我会使用:
typedef struct Maze { char mazeMatrix[6][10]; } Maze;
Maze *mp = ...;
mp->mazeMatrix[0][0] = 'H';
结束线是一样的。请注意,您typedef struct maze { ...};
没有为类型定义名称;关键字typedef
是多余的,应该删除(好的编译器会警告你)。我可能也会简单地使用这个词matrix
而不是mazeMatrix
; 它的结构是一个迷宫,它里面的矩阵就是迷宫的矩阵,不需要前缀。
调用上下文:
Maze m;
maze_modifier(&m);
称为上下文:
void maze_modifier(Maze *mp)
{
mp->mazeMatrix[0][0] = 'H';
...
}
我的下一个问题是从指针打印这个矩阵。我在用:
printf("%c", mazePointer->matrix[counter][counterA]);
计数器只是来自 2 个嵌套 for 循环的 2 个变量。有什么建议么?
那应该行得通。所以应该这样:
void maze_printer(Maze *mp)
{
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 10; j++)
putchar(mp->mazeMatrix[i][j]);
putchar('\n');
}
}