我想定义一个字符串数组,定义和赋值分为两行,如下所示:
char **test;
test = { "Snakes", "on", "a", "Plane" }; // <--
printf("Test: %s\n", test[3]);
但是我在指定的行中收到错误:
Line 4: error: expected expression before '{' token
这里有什么问题?是否有一个很好的教程解释所有数组,指针,声明,定义,C字符串之间和之间的分配?
答案 0 :(得分:3)
您无法通过这种方式分配数组。 在您的情况下,您的数组未分配。
这样做的方法是:
char *test[4];
test[0] = "Snake";
test[1] = "on";
test[2] = "a";
test[3] = "plane";
答案 1 :(得分:2)
它不能只在
之前的C99的初始化表达式中写入E.g。
char *test[]={ "Snakes", "on", "a", "Plane" };
可以在C99
中编写如下E.g。
char **test;
test = (char*[]){ "Snakes", "on", "a", "Plane" };
答案 2 :(得分:0)
你不能这样做。
如上所述,要么在声明时这样做。
为每个单词使用内置函数(strcpy,memcpy)。
最好的方法是创建一个函数,使用上面的函数或char by char将相应的单词添加到数组中。