c - 从类型 ‘char *[80]’ 错误分配给类型 ‘char **’ 时类型不兼容

标签 c linux compiler-errors

<分区>

当我编译以下行时,出现“从类型‘char **’分配给类型‘char *[80]’时不兼容的类型”错误。 'nw' 和 'source' 都是句子(来自句子结构类型)。 这个问题与其他问题不同,因为它处理的是其他地方没有讨论过的二维数组。

nw.sentence = source->sentence;

句子结构类型为:

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

谢谢。

最佳答案

假设你有声明

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;

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

关于c - 从类型 ‘char *[80]’ 错误分配给类型 ‘char **’ 时类型不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36123760/

相关文章:

c++ - 如何在 Linux 上守护一个 c/c++ 程序

c - 为什么除了eax还要提供orig_eax?

Java 编译错误 - 类型不匹配 : cannot convert from String to int

c - 如何在 Windows 7 上记录网络带宽?

c - 将指针传递给结构体数组

c - 如何在 RTOS 中查找任务中的内存泄漏?

java - 初始化为0时显示错误。无法理解其背后的原因,谁能告诉我

C *char 指向 char 数组的指针

C++ FIFO 奇怪的行为

php - 配置 php 5.3 失败,错误为 : freetype. h 未找到(但已安装 libfreetype6-dev)