• 締切済み

floating point not loadedとは?

#include <stdio.h> int main(){     double r;     scanf("%lf", &r);     return 0; } こちらのプログラムを実行したところデバックライブラリというメッセージボックスが表示され、Debug error! 「floating point not loaded」と表示されました。 これは何がいけないのでしょうか?

みんなの回答

  • venzou
  • ベストアンサー率71% (311/435)
回答No.7

#3の回答のリンク先より引用 >この問題を回避するために、浮動変数を初期化、またはscanf()呼び出しを含むルーチンでの式で変数を使用します。 初期化以外の回避策が書かれていますね。 #include <stdio.h> int main(){ double r,tmp; tmp = r; scanf("%lf", &r); return 0; } これでも回避できるのかな?(検証してません) 初期化してませんよ!w (子供みたいなことして、すんません(^^;)

  • driverII
  • ベストアンサー率27% (248/913)
回答No.6

#3,#4です。 #4の「#2の参考URL」は「#3の…」の誤りです。 ややこしくなってしまってすみません。

  • venzou
  • ベストアンサー率71% (311/435)
回答No.5

#2です。 「初期化」が必要なのではなく、「回避策」が必要なのです。 r = 0.0 は「初期化」するためではなく、「回避」するためのものです。 (もちろん初期化してますけど・・・) と、言うことを説明したかったのです。 なんか、誤解を生んだみたいですいません。

  • driverII
  • ベストアンサー率27% (248/913)
回答No.4

>>初期化しなければ、エラーになるのなら、結局必要なのですね? そういうことですね。#2の参考URLでMSが仕様と言っている限り、このままでしょうし。 doubleで宣言してるのだから、勝手に読み込んでくれよと言いたいところですが・・・

  • driverII
  • ベストアンサー率27% (248/913)
回答No.3

やっぱり、初期化がいるのではw

参考URL:
http://support.microsoft.com/kb/37507
cnyumonsha
質問者

お礼

初期化しなければ、エラーになるのなら、結局必要なのですね?

  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

>初期化は必要なんでしょうか・・。 初期化が必要、と言う訳ではないです。 文法的には初期化しなくても問題ありません。 簡単に言うとコンパイラのバグです。 初期化するのは、不具合を回避するための1つの手段です。 http://pub.ne.jp/tamo/?entry_id=420346

cnyumonsha
質問者

お礼

なるほど、文法的にはおかしくないけど、実行するとエラーになると・・。おかしな話ですね;

  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

ボーランドですかね。 なんか浮動小数点ルーチンが必要なさそうに見えるソースでは、たまにそのようなことがあるらしいです。 参考URLにもありますが、浮動小数点を使用するような部分を入れてみてください。 scanf の前に r = 0.0; とか。

参考URL:
http://f4.aaa.livedoor.jp/~pointc/log770.html
cnyumonsha
質問者

お礼

環境はXPでstudio.NETです。 初期化は必要なんでしょうか・・。

関連するQ&A