gpt4 book ai didi

更改 C 结构中矩阵的内容

转载 作者:行者123 更新时间:2023-11-30 15:51:34 26 4
gpt4 key购买 nike

我目前正在为学校做一项作业,但目前我陷入困境。在我看来,我想要实现的目标相当简单。我已经定义了一个结构。在这个结构中我做了一个矩阵。我想做的下一件事是仅使用指向该结构的指针向该矩阵添加信息。

这是我的结构:

typedef struct maze{
char mazeMatrix[6][10];
};

以及我指向该结构的指针:

typedef struct maze* mazePointer;

然后我在另一个函数中初始化它。我一直在许多网站上寻找所需的语法,但找不到所需的语法。如何更改矩阵的内容,例如我想用“H”更改第一个条目(第一行,第一列)mazeMatrix[0][0]。实现这一目标的语法是什么?

我还提供了指向需要更新结构的函数的指针。

最佳答案

给定:

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';
...
}
<小时/>

My next issue is then printing this matrix from a pointer. I am using:

printf("%c", mazePointer->matrix[counter][counterA]);

The counters are just 2 variables from 2 nested for loops. Any suggestions?

这应该有效。所以应该这样:

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');
}
}

关于更改 C 结构中矩阵的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15028772/

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