【问题标题】:Incompatible types when assigning to type - C [closed]分配给类型时不兼容的类型-C [关闭]
【发布时间】:2013-01-23 19:38:47
【问题描述】:

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

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

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

http://pastebay.net/1181184

【问题讨论】:

  • 请勿使用外部链接引用代码。 (我们怎么知道它没有充满病毒?)将你的代码缩减到有意义的小尺寸,然后直接放在问题中。

标签: c pointers types double


【解决方案1】:

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

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

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

要解决这个问题,您可能需要编写

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

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

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

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    尝试取消引用指针:

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

    【讨论】:

    • 哈哈你也打败了我吧
    猜你喜欢
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2016-01-23
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多