我目前正在学习C,我刚刚编写了一个程序草稿,允许用户围绕基于角色的迷宫/路径移动玩家。我已经将迷宫/路径构建为多维字符数组,其中while循环通过替换数组中的某些字符来控制玩家的位置。这是我初始化的多维数组:
error: '}' expected
然而,当我尝试编译时,我收到此错误:
{{1}}
数组中的第一行显然缺少某种结束括号,虽然我已经多次检查了正确的数组语法,但这似乎是正确的。我错过了什么?这有什么其他问题吗?
答案 0 :(得分:1)
您的数组类型为char
,但您的条目属于char *
类型。将双引号"
替换为单引号'
。
单引号表示char
本身,其中双引号表示char序列(字符串),因此编译器将尝试将\0
字符添加到结尾。
另一方面,您必须交换值5和7进行初始化。
最终结果与此类似:
//7 big entries with 5 values
char maze[7][5] = {
{'_', '_', '_', '_', '_'},
{'_', '_', '_', '_', '_'},
{'_', '_', '_', '_', '_'},
{'_', '_', '_', '_', '_'},
{'_', '_', '_', '_', '_'},
{'_', '_', '_', '_', '_'},
{'_', '_', '_', '_', '_'},
};
答案 1 :(得分:0)
您为数组maze[5][7]
提供了错误的维度,它是行和列,您定义的是7行和5列。并且您将每个元素作为字符串输入。它应该是一个在单引号内给出的字符,如'a'
。如果你要用双引号定义它将成为字符串。这将解决您的问题
char maze[7][5] = {
{'_', '_', '_', '_', '_'},
{'|', ' ', ' ', ' ', '|'},
{'|', ' ', '|', ' ', '|'},
{'|', ' ', '|', '_', '|'},
{'|', '_', ' ', ' ', '|'},
{'|', ' ', '|', ' ', '|'},
{'|', '_', '_', '_', '|'}
};
希望这有助于:)
答案 2 :(得分:0)
您需要替换“with”,因为char是单个符号。 第二个问题是,你指定错误的长度。
用第二长度替换第一个。
char maze[7][5] = {
{'_', '_', '_', '_', '_'},
{'|', ' ', ' ', ' ', '|'},
{'|', ' ', '|', ' ', '|'},
{'|', ' ', '|', '_', '|'},
{'|', '_', ' ', ' ', '|'},
{'|', ' ', '|', ' ', '|'},
{'|', '_', '_', '_', '|'}
};