当我编译以下行时,从类型'char **'"中分配类型'char * [80]'时,它会获得"不兼容的类型。错误。两者都是'和'来源'是句子(从句子结构类型)。 这个问题与其他问题不同,因为它涉及到其他地方尚未讨论的二维数组。
nw.sentence = source->sentence;
句子结构类型是:
typedef struct {
char *sentence[MAX_LINE_LENGTH];
} sentence;
感谢。
答案 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;
最后一个是指向字符串指针的指针。