首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符数组的函数?

字符数组的函数?
EN

Stack Overflow用户
提问于 2016-03-17 20:43:01
回答 4查看 76关注 0票数 0

我真的很难通过C来学习编程。我似乎在阅读这本书的练习时抓住了要点,但当我试图实现一些不同的东西时,它就崩溃了,特别是在数组方面。

我用2D字符数组做了一个简单的游戏。它应该是11x11。我正在尝试编写一个函数,将数组的每个索引设置为一个空格‘’开始。我的代码编译,然后我得到一个‘核心转储’,当我运行它。代码如下:

代码语言:javascript
复制
#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;
}

任何对更好地理解这一点的帮助都将非常感谢,谢谢。

EN

回答 4

Stack Overflow用户

发布于 2016-03-17 20:46:53

内部循环会递增i,直到它超出数组边界

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

在内部循环的MAX+1迭代之后,你试图访问未分配的内存,这就是为什么你得到错误的原因。

此外,也不需要GameBoard[i][i] = ' ';行,因为当使用j == i时,会在内部循环中处理它

票数 3
EN

Stack Overflow用户

发布于 2016-03-17 20:47:22

您需要更改此行

代码语言:javascript
复制
   for (int j = 0; j < MAX; ++i)

代码语言:javascript
复制
   for (int j = 0; j < MAX; ++j)
票数 2
EN

Stack Overflow用户

发布于 2016-03-17 20:49:59

将该行中的++i替换为++j

代码语言:javascript
复制
for (int j = 0; j < MAX; ++i)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36060892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档