我有以下代码:
char *array1[3] =
{
"hello",
"world",
"there."
};
struct locator_t
{
char **t;
int len;
} locator[2] =
{
{
array1,
10
}
};
使用“gcc -Wall -ansi -pedantic”编译成功。但是对于另一个工具链 (Rowley),它会提示
warning: initialization from incompatible pointer type
在 char **t 所在的行。这确实是非法代码还是没问题?
感谢大家的回答。我现在知道我的问题出在哪里了。然而,它提出了一个新问题:
最佳答案
对我来说似乎完全合法; char *[3]
衰减为 char **
,因此赋值应该有效。
GCC 4.4.5 和 CLang 1.1 都没有提示。
关于c - 字符串数组转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7834294/