我有一个非常基本的疑问。从下面的代码中,我已将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'}};
}
我正在制作的基本错误...请指出!!
由于
答案 0 :(得分:2)
初始化语法只能在声明数组时使用,即
char board[2][2] = {{'a', 'b'}, {'c', 'd'}};
在所有其他情况下,您需要浏览数组元素并进行设置。
答案 1 :(得分:0)
您正在索引init_board()中的Board [2] [2],您正在索引数组的指定大小的越界,即您已指定该数组是2行和2列,但您正在索引到元素3(索引从C / C ++和其他几种语言的0开始)。 您可以在编译时在您声明它的文件顶部初始化数组:
char Board[2][2] = {{'a','b'},{'c','d'}};
或者您可以像其他人建议的那样单独初始化每个元素。
答案 2 :(得分:0)
void init_board()
{
Board = {{'a','b'},{'c','d'}};
}
可以解决它...... 当你使用 Board [2] [2]你只是在位置[2] [2]中的一个字符。因此,这意味着您只需将a,b,c和d添加到董事会的一口