gpt4 book ai didi

c - 试图创建一个二维列表,但一行的第一个元素将最后一行的最后一个元素更改为所述元素

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

这是我的代码的一部分:

int h = height+1;
int w = width+1;
char board[h][w];
board[0][w] = 'a';
board[1][0] = '|';

printf("%c, %c", board[0][w], board[1][0]);

但是当我编译并运行它时,我得到了这个:

|, |

我做错了什么?

最佳答案

您通过访问超出范围的数组调用了未定义的行为。分配足够的元素或使用正确的索引。

前例:

int h = height+1;
int w = width+1;
char board[h][w+1]; /* allocate w+1 elements instead of w */
board[0][w] = 'a';
board[1][0] = '|';

printf("%c, %c", board[0][w], board[1][0]);

后一个例子:

int h = height+1;
int w = width+1;
char board[h][w];
board[0][w-1] = 'a'; /* use w-1 instead of w */
board[1][0] = '|';

printf("%c, %c", board[0][w-1], board[1][0]); /* use w-1 instead of w */

关于c - 试图创建一个二维列表,但一行的第一个元素将最后一行的最后一个元素更改为所述元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38978263/

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