我在 C 中的一个项目的 Code::Blocks 中工作。
当我编译时,我在第 81、85、90、91 行收到错误:“从类型 'double' 分配给类型 'double *' 时类型不兼容”。
该项目是采取一个单位转换工具并合并多个功能而不是main()下的所有内容。
我在 C 中的一个项目的 Code::Blocks 中工作。
当我编译时,我在第 81、85、90、91 行收到错误:“从类型 'double' 分配给类型 'double *' 时类型不兼容”。
该项目是采取一个单位转换工具并合并多个功能而不是main()下的所有内容。
尝试取消引用指针:
*pKelvin = PROD((fahrenheit+459.67),ytemp);
^
您遇到的所有错误都是主题的变体。以这条线为例:
pKelvin = PROD((fahrenheit+459.67),ytemp);
在这里,pKelvin
has type double*
,意味着它是一个指向 type 对象的指针double
。另一方面,右侧有 type double
,这意味着它是一个实际的double
。C 抱怨是因为你不能将double
s 分配给double*
s,因为它们代表了根本不同的类型。
要解决这个问题,你可能想写
*pKelvin = PROD((fahrenheit+459.67),ytemp);
这表示“将 的值存储PROD((fahrenheit+459.67),ytemp)
在double
指向的pKelvin
。这是有效的,因为您现在将 a 分配给double
类型的对象double
。
更一般地说,如果您看到这样的错误,这可能意味着您正在将指针分配给非指针,反之亦然。
希望这可以帮助!