从类型'char **'错误分配类型'char * [80]'时不兼容的类型

时间:2016-03-21 05:29:25

标签: c linux compiler-errors

当我编译以下行时,从类型'char **'"中分配类型'char * [80]'时,它会获得"不兼容的类型。错误。两者都是'和'来源'是句子(从句子结构类型)。 这个问题与其他问题不同,因为它涉及到其他地方尚未讨论的二维数组。

nw.sentence = source->sentence;

句子结构类型是:

typedef struct {
    char *sentence[MAX_LINE_LENGTH];
} sentence;

感谢。

1 个答案:

答案 0 :(得分:0)

假设您有声明

int *x;

这意味着x具有类型int *,换句话说是指向int的指针。在同一逻辑中,声明

 char *sentence[MAX_LINE_LENGTH];

表示sentence[MAX_LINE_LENGTH]的每个元素(MAX_LINE_LENGTH元素数组)都有char *类型,换句话说就是指向字符串的指针。

作为结论,char *sentence[MAX_LINE_LENGTH]的每个元素都指向一个字符串。这与声明

不同
char ** sentence;

最后一个是指向字符串指针的指针。