0

我有一个非常基本的疑问。从下面的代码中,我将 Board[ ][ ] 声明为全局 char 数组。我想在一个名为init_board(). 但是编译器返回

In function void init_board():
expected primary-expression before '{' token
expected ;' before '{' token

代码:

#include <iostream>
#include <conio.h>

using namespace std;

//global variables---------------
char Board[2][2];

//function declarations----------
void init_board();

int main(void)
{
init_board();

 for(int i=0;i<2;i++)
 { 
 for(int j=0;j<2;j++)
 {
  cout<<Board[i][j]<<" ";
 }
  cout<<"\n";
 }

getch();
}

void init_board()
{
Board[2][2] = {{'a','b'},{'c','d'}}; 
}

我犯的基本错误是什么......请指出!

谢谢

4

3 回答 3

2

初始化语法只能在声明数组时使用,即

char board[2][2] = {{'a', 'b'}, {'c', 'd'}};

在所有其他情况下,您需要浏览数组元素并设置它们。

于 2012-10-13T03:57:51.847 回答
0

您正在 init_board() 中索引 Board[2][2] 您正在索引超出指定数组大小的范围,即您已指定数组为 2 行和 2 列,但您正在索引元素 3(在 C/C++ 和其他一些语言中,索引从 0 开始)。您可以在编译时在声明它的文件顶部初始化数组:

char Board[2][2] = {{'a','b'},{'c','d'}}; 

或者您可以按照其他人的建议单独初始化每个元素。

于 2012-10-13T04:26:40.640 回答
0
void init_board()
{
Board = {{'a','b'},{'c','d'}};
}

那可以解决它...当您使用 Board[2][2] 时,您只会引用位置 [2][2] 中的一个字符。所以这意味着您将只在董事会的一口中添加 a、b、c 和 d

于 2012-10-13T07:05:22.410 回答