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

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

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

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

http://pastebay.net/1181184

尝试解除引用指针:

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

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

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

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

要解决这个问题,你可能想写

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

这说“将PROD((fahrenheit+459.67),ytemp)的值存储在PROD((fahrenheit+459.67),ytemp)指向的double处。这是因为你现在为double类型的对象分配一个double

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

希望这可以帮助!