gpt4 book ai didi

C - 修改了 2 个二维字符数组

转载 作者:行者123 更新时间:2023-12-02 04:52:31 25 4
gpt4 key购买 nike

我有 2 个二维字符数组,用于表示 5x5 网格。问题是当涉及到函数的最后 4 行时(我在数组中设置了一些字符的值,我将它们用于测试)。然后,如果我打印出网格,它看起来像这样。

SP_HumanGrid:

11---
-----
-----
-----
-----

SP_AIGrid:

11---
-----
-----
----1
11---

代码在这里:

char SP_HumanGrid[4][4]; //The Human player's grid
char SP_AIGrid[4][4]; //The AI player's grid

void SP_EmptyGrids(void)
{
int nRow,nCol;

for (nRow=0;nRow<5;nRow++)
{
for (nCol=0;nCol<5;nCol++)
{
SP_HumanGrid[nRow][nCol] = POINT_WATER;
SP_AIGrid[nRow][nCol] = POINT_WATER;
}
}

SP_HumanGrid[0][0] = POINT_SHIP1;
SP_HumanGrid[0][1] = POINT_SHIP1;
SP_AIGrid[0][0] = POINT_SHIP1;
SP_AIGrid[0][1] = POINT_SHIP1;
}

我没有其他函数可以修改 SP_AIGrid 变量的值。它们看起来不应该一样吗,因为我将它们设置为相同的值?

PS:不要问关于这个的想法,我正在通过在控制台中创建 Battleships 游戏来测试语言。我知道这是错误的..愚蠢的,但我仍然想尝试一下。

最佳答案

你的数组太小了。您从零索引到四,即五个条目,但您将它们声明为四个。这意味着您正在覆盖内部数组,并且也超出了它们的范围。

声明数组时输入的数字不是顶部索引而是大小。

关于C - 修改了 2 个二维字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18572201/

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