分配给类型时不兼容的类型 – 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
。
更一般地说,如果您看到类似这样的错误,则可能意味着您正在指定指向非指针的指针,反之亦然。
希望这可以帮助!