【发布时间】:2019-05-03 16:12:29
【问题描述】:
我想声明一个指向 char 指针数组的指针数组并对其进行初始化。但我无法使用以下方式声明和初始化它:
char *(*array[])[] = {
{ "car", "toy", "game" },
{ "go", "play", "read" }
};
请写出我的声明和初始化的正确形式? 我收到警告消息,例如“警告:标量初始值设定项大括号” 还有“注意:('array[0]'的初始化附近)”
【问题讨论】:
-
您拥有的初始化程序是一个由两个数组组成的数组,该数组包含三个指向(只读)字符的指针。可选地,它可以是由三个 X 字符数组组成的两个数组的数组(其中 X 大到足以容纳最大的字符串)。
-
在cdecl.org 中发现了一个错误——
char *(*array[])[]不起作用,因为它不处理单词数组。char *(*Array[])[]确实如此。 cdecl.org/?q=char+*%28*Array%5B%5D%29%5B%5D%3B
标签: c arrays pointers declaration