C,GCC警告:从不兼容的指针类型初始化

时间:2020-07-31 07:24:46

标签: arrays c pointers initialization

jsonData

有人可以帮助吗?这部分代码不正确,** strings ==字符串[0] [0],而字符串[0] [0]是char是不正确的?对不起,我的英语真的很差。

2 个答案:

答案 0 :(得分:1)

编译器认识到strings是一个数组数组,因此建议相应地声明指针:

char strings[10][100], (*ptr)[100] = strings;

更新:

如David C. Rankin所述,在ptr的初始化中发生了转换。 strings从一个100个字符的数组转换为一个指针,再指向一个100个字符的数组指向该数组的第一个元素。转换在此处指定:C11 Standard - 6.3.2.1 Other Operands - Lvalues, arrays, and function designators(p3)

答案 1 :(得分:0)

警告:

Warning: initialization of ‘char **’ from incompatible pointer type ‘char (*)[100]’ [-Wincompatible-pointer-types]
    8 |   char strings[10][100], ** ptr = strings;

它说:ptr和字符串是不同的类型,所以ptr [0] [0¿和string [0] [0]是不同的

相关问题