从不兼容的指针类型初始化 - C结构

时间:2018-04-28 13:12:09

标签: c struct

我一直收到以下警告:从不兼容的指针类型初始化。 通过这一行

Season season1 = (Season *) malloc(sizeof(Season));

这是我在season.h

中定义的结构
typedef struct season* Season;

1 个答案:

答案 0 :(得分:2)

您将结果从malloc转换为"指向A"并将其分配给" A"类型的变量。使用" A"正在"季节"。
使用此版本的代码可能会更清楚 编辑了更多的说话标识符,并使用sizeof()内部正确的东西修复,而不是强制转换malloc()。

typedef struct season* PointerToseason; // if you insist on hiding it inside a typedef

PointerToseason season1 = malloc(sizeof(struct season));

广受欢迎的版本是

PointerToseason season1 = malloc(sizeof(*season1));

它需要较少的知识,这些知识隐藏在typedef中(明智与否)。

另外,请仔细查看代码seasonSeason中过于相似的标识符。