0

我在 C 中的一个项目的 Code::Blocks 中工作。

当我编译时,我在第 81、85、90、91 行收到错误:“从类型 'double' 分配给类型 'double *' 时类型不兼容”。

该项目是采取一个单位转换工具并合并多个功能而不是main()下的所有内容。

http://pastebay.net/1181184

4

2 回答 2

4

尝试取消引用指针:

*pKelvin = PROD((fahrenheit+459.67),ytemp);
^
于 2013-02-08T04:42:36.727 回答
3

您遇到的所有错误都是主题的变体。以这条线为例:

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

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

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

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

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

更一般地说,如果您看到这样的错误,这可能意味着您正在将指针分配给非指针,反之亦然。

希望这可以帮助!

于 2013-02-08T04:43:42.550 回答