質問があります。
最近C言語を勉強し始めたのですが、scanf関数を使うと以下のような警告が出ます。
「arning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 'scanf' の宣言を確認してください。」
使用しているのは
Visual C++ 2008 Express Editionです。

A 回答 (2件)

scanf は「ちゃんと使え」ば問題ないんだけど, 「何も考えずに使う」と #1 で指摘されているようにバッファオーバーフローの原因になります. なので, 「小さな親切」でこんなメッセージを出しています.


Visual C++ の独自仕様なので, 「一般的な参考書に載っていない」としてもしょうがないかと.
    • good
    • 0
この回答へのお礼

とりあえず問題ないみたいなので慣れるまでこのままでいこうかと思います。
早々の回答ありがとうございました。

お礼日時:2009/05/23 23:02

こんにちは。



scanf()やstrcpy()などは、バッファオーバーフローを起こすとセキュリティホールとなりえるので、危険ですよ~という警告です。
同様の機能を持つセキュアな関数が用意されているので、そちらを使われたほうがよいと思いますが、一般的な参考書に載ってないので勉強には不向きですね…

下記の方法で警告を停止することができます。
http://wind-master.dip.jp/soft-info/item/61

参考URL:http://wind-master.dip.jp/soft-info/item/61
    • good
    • 0
この回答へのお礼

なるほど。なかなか難しいですね。
とりあえず実行はできるのでしばらくは今のままやってみようと思います。
早々の返答ありがとうございました。

お礼日時:2009/05/23 23:01

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


人気Q&Aランキング