分配给类型-C时不兼容的类型

时间:2013-02-08 04:40:43

标签: c pointers types double

我在C中的项目中使用Code :: Blocks。

当我编译时,我得到错误:“在第81,85,90,91行上从类型'double'分配类型'double *'时出现不兼容的类型。

该项目是采用单位转换工具并包含多个函数,而不是main()下的所有函数。

http://pastebay.net/1181184

2 个答案:

答案 0 :(得分:4)

尝试取消引用指针:

*pKelvin = PROD((fahrenheit+459.67),ytemp);
^

答案 1 :(得分:2)

您获得的所有错误都是主题的变体。拿这一行,例如:

pKelvin = PROD((fahrenheit+459.67),ytemp);

此处,pKelvin的类型为double*,这意味着它是指向double类型对象的指针。另一方面,右侧有double类型,这意味着它是实际的double。 C抱怨是因为您无法将double分配给double*,因为它们代表了根本不同的类型。

要解决此问题,您可能需要编写

*pKelvin = PROD((fahrenheit+459.67),ytemp);

这表示“将PROD((fahrenheit+459.67),ytemp)的值存储在double指向的pKelvin。这是有效的,因为您现在正在为类型对象分配double double

更一般地说,如果您看到类似这样的错误,则可能意味着您正在指定指向非指针的指针,反之亦然。

希望这有帮助!