我在C中的项目中使用Code :: Blocks。
当我编译时,我得到错误:“在第81,85,90,91行上从类型'double'分配类型'double *'时出现不兼容的类型。
该项目是采用单位转换工具并包含多个函数,而不是main()下的所有函数。
答案 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
。
更一般地说,如果您看到类似这样的错误,则可能意味着您正在指定指向非指针的指针,反之亦然。
希望这有帮助!