c - 字符数组的函数?

标签 c arrays function

<分区>

我真的很难通过 C 语言学习编程。在完成本书的练习时,我似乎明白了事情的要点,但第二次我尝试实现一些不同的东西时,它就分崩离析了,尤其是在数组方面。

我正在制作一个带有 2D 角色数组的简单游戏。它应该是 11x11。我正在尝试编写一个函数来将数组的每个索引设置为一个空格 ' ' 来开始。我的代码会编译,然后在运行时得到一个“核心转储”。这是代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/*-------- GLOBAL FUNCTIONS --------*/


// Clear the Screen
void clear()
{
    system("clear");    // For Linux/iOS
}


//----------   Creat Array(Game Board)

#define MAX 11 // Max number of characters in each row and column of array
char GameBoard[MAX][MAX];


// Clear Each Space in Array with Empty ("") Space
void ClearBoard(char GB[MAX][MAX])
{
    for (int i = 0; i < MAX; ++i)
    {
        GameBoard[i][i] = ' ';
        for (int j = 0; j < MAX; ++i)
        {
            GameBoard[i][j] = ' ';
        }
    }
}



int main()
{


    ClearBoard(GameBoard);


return 0;
}

如果您能帮助我们更好地理解这一点,我们将不胜感激,谢谢。

最佳答案

你的内部循环递增i直到超出数组边界

应该是++j而不是 ++i

MAX+1之后您尝试访问未分配的内存的内部循环的迭代,这就是您收到错误的原因。

还有行GameBoard[i][i] = ' ';是不必要的,因为它在 j == i 时在内循环中得到处理。

关于c - 字符数组的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36060892/

相关文章:

c++将数组直接传递给函数

arrays - 在 MATLAB matfile 中使用非零值预分配大型数组

Javascript 匹配数组的各个部分并返回索引值

c - 错误: expected identifier or ‘(’ before ‘TOKEN’

c - 如何在 C 中创建我自己的字符串函数?

c - 指针增量与C中的索引增量相比如何

javascript - 在循环内调用函数

javascript - 在 React 中将特定参数传递给具有多个参数的函数

c++ - 另一个奇怪的编译器错误 : calling a templated function which gives undefined referenes

c - 帕斯卡三角形