【发布时间】:2020-07-22 09:57:59
【问题描述】:
我认为char *ptrs[]; 和char **strs; 应该是同一个东西。
至少我可以将两者都用作字符串数组。
当我尝试编译 char **strs 时,这很好,但 *ptrs[] 出于某种原因想要被初始化或者至少它想要一个固定的大小。
char ptrs[];
char **strs;
我得到错误:
gcc: "error: array size missing in ‘ptrs’"
【问题讨论】:
-
首先你忘记了
char ptrs[];中的星号。其次,您不能将非参数变量定义为没有大小的数组。第三,C 和 C++ 是两种不同的语言,它们有不同的规则,例如使用未调整大小的数组(C 标准允许在 一个 位置使用,但 C++ 标准不允许这样做)。 -
数组和指针不是一回事