dポイントプレゼントキャンペーン実施中!

#include <stdio.h>

int main(){
    double r;

    scanf("%lf", &r);

    return 0;
}

こちらのプログラムを実行したところデバックライブラリというメッセージボックスが表示され、Debug error! 「floating point not loaded」と表示されました。

これは何がいけないのでしょうか?

A 回答 (7件)

#3の回答のリンク先より引用


>この問題を回避するために、浮動変数を初期化、またはscanf()呼び出しを含むルーチンでの式で変数を使用します。

初期化以外の回避策が書かれていますね。

#include <stdio.h>

int main(){
double r,tmp;
tmp = r;

scanf("%lf", &r);

return 0;
}

これでも回避できるのかな?(検証してません)

初期化してませんよ!w
(子供みたいなことして、すんません(^^;)
    • good
    • 0

#3,#4です。



#4の「#2の参考URL」は「#3の…」の誤りです。

ややこしくなってしまってすみません。
    • good
    • 0

#2です。


「初期化」が必要なのではなく、「回避策」が必要なのです。

r = 0.0
は「初期化」するためではなく、「回避」するためのものです。
(もちろん初期化してますけど・・・)

と、言うことを説明したかったのです。
なんか、誤解を生んだみたいですいません。
    • good
    • 0

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



そういうことですね。#2の参考URLでMSが仕様と言っている限り、このままでしょうし。

doubleで宣言してるのだから、勝手に読み込んでくれよと言いたいところですが・・・
    • good
    • 0

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



参考URL:http://support.microsoft.com/kb/37507
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/18 12:36

>初期化は必要なんでしょうか・・。


初期化が必要、と言う訳ではないです。
文法的には初期化しなくても問題ありません。

簡単に言うとコンパイラのバグです。

初期化するのは、不具合を回避するための1つの手段です。

http://pub.ne.jp/tamo/?entry_id=420346
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/12/18 12:36

ボーランドですかね。



なんか浮動小数点ルーチンが必要なさそうに見えるソースでは、たまにそのようなことがあるらしいです。

参考URLにもありますが、浮動小数点を使用するような部分を入れてみてください。

scanf の前に r = 0.0;

とか。

参考URL:http://f4.aaa.livedoor.jp/~pointc/log770.html
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/12/18 11:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!