1

我想定义一个字符串数组,定义和赋值分为两行,如下所示:

char **test;
test = { "Snakes", "on", "a", "Plane" }; // <--
printf("Test: %s\n", test[3]);

但我在指示的行中收到错误:

Line 4: error: expected expression before '{' token

这里有什么问题?是否有一个很好的教程来解释所有的数组、指针、声明、定义、C 字符串之间的赋值?

4

3 回答 3

3

您不能通过这种方式分配数组。在您的情况下,您的数组未分配。

这样做的方法是:

char    *test[4];

test[0] = "Snake";
test[1] = "on";
test[2] = "a";
test[3] = "plane";
于 2013-06-24T11:39:05.943 回答
2

它不能只写在 C99 的初始化表达式之前

例如

char *test[]={ "Snakes", "on", "a", "Plane" };

在C99中可以写成如下

例如

char **test;
test = (char*[]){ "Snakes", "on", "a", "Plane" };
于 2013-06-24T11:41:57.610 回答
0

你不能这样做。

或者,如上所述,在声明时进行。

对每个单词使用内置函数(strcpy,memcpy)。

最好的方法是创建一个函数,使用上面的函数或逐字符的字符将各个单词添加到数组中。

于 2013-06-24T11:43:39.480 回答