c - 字符串数组转换

标签 c ansi-c

我有以下代码:

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 所在的行。这确实是非法代码还是没问题?

感谢大家的回答。我现在知道我的问题出在哪里了。然而,它提出了一个新问题:

string array initialisation

最佳答案

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

GCC 4.4.5 和 CLang 1.1 都没有提示。

关于c - 字符串数组转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7834294/

相关文章:

c - 排序数组在 ANSI C 中不起作用

c - K&R C 书关于 scanf 如何处理格式字符串中的空格和制表符的问题?

将字符串文字转换为变量名

c++ - -迂腐警告和 pthread_create

c - 光线追踪旋转

c - 通过 C 语言的套接字编程处理多个客户端

c - 可以说当传递给 C 中的函数时所有参数或自变量都被复制了吗?

c++ - ANSI C 和 ANSI C++ 中的 const 修饰符

c - Valgrind 警告 : Should I Take It Seriously

c - OpenMP - 同时对二维数组的行进行排序