我有以下代码: 通用标签

使用“ gcc -Wall -ansi -pedantic”编译确定。但是使用另一个工具链(Rowley),它抱怨 通用标签

char ** t所在的行。这确实是非法代码还是可以吗?

感谢所有答案。我现在知道我的问题在哪里。但是,它提出了一个新问题:

字符串数组初始化

有帮助吗?

解决方案

对我来说似乎完全合法;char *[3]衰减为char **,因此该分配应该有效。

GCC 4.4.5和CLang 1.1都没有抱怨。

其他提示

尽管在实践中array1应该衰减为char **类型的指针,但其实际类型实际上是char *[3],因此发出警告。

要取消显示警告,您可以尝试显式投射警告: 通用标签

array1是(char *)[3],在语义上与char **不同,尽管在赋值时应将其优雅地降级为char **

指针和数组,仅在静态范围内兼容。在全局范围内,指针和数组不相同,将两者混合会导致不确定的行为。因此,我认为该警告是正确的。

尝试放置: 通用标签

在一个模块中: 通用标签

在另一处,编译并链接。(我还没有尝试过……)我希望事情会出错...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top