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);

ここでpKelvinは、 typeを持っています。double*これは、 type のオブジェクトへのポインターであることを意味しますdouble。一方、右側には typedoubleがあり、実際の であることを意味しdoubleます。doubles をs に割り当てることができないため、C は不平を言っていますdouble*。それらは根本的に異なる型を表しているからです。

これを修正するには、おそらく次のように記述します

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

PROD((fahrenheit+459.67),ytemp)これは、「がdouble指す にの値を格納する」という意味です。タイプ のオブジェクトに をpKelvin割り当てているため、これは機能します。doubledouble

より一般的には、このようなエラーが表示された場合は、ポインターを非ポインターに割り当てているか、その逆を行っている可能性があります。

お役に立てれば!

于 2013-02-08T04:43:42.550 に答える