我希望你们能帮助我解决我遇到的问题。
对于一个小项目,我必须初始化一个 3 维字符数组,当我在主中初始化它时它可以正常工作,所以我认为问题或多或少存在于我的键盘和椅子之间;)
我已经将初始化从 main 分离到一个单独的 .c 中,我将让你一睹它:
/*database.c*/
#define PHRASE_NUM 6
#define PHRASE_LEN 100
#define PHRASE_TYPES 2
void initDatabase(char database[][PHRASE_TYPES][PHRASE_LEN]) {
/* At this point I get the error "error: expected expression before ']' token" */
database[][PHRASE_TYPES][PHRASE_LEN]=
{
{{"string 1.1"},{"string 1.2"}},
{{"string 2.1"},{"string 2.2"}},
{{"string 3.1"},{"string 3.2"}},
{{"string 4.1"},{"string 4.2"}},
{{"string 5.1"},{"string 5.2"}},
{{"string 6.1"},{"string 6.2"}}
};
}
/*main.c*/
#include "database.h"
int main (void)
{
char database[PHRASE_NUM][PHRASE_TYPES][PHRASE_LEN];
initDatabase(database);
printf(database[1][0]);
/* should return string 2.1 */
return 0;
}
因此,如上面的评论中所述,我收到以下错误:“错误:']' 标记之前的预期表达式”。我检查了我是否对一般初始化做错了什么。的数组,但如果我直接在 main 中实现它,这将有效。