- 締切済み
scanf関数について
質問があります。 最近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です。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
scanf は「ちゃんと使え」ば問題ないんだけど, 「何も考えずに使う」と #1 で指摘されているようにバッファオーバーフローの原因になります. なので, 「小さな親切」でこんなメッセージを出しています. Visual C++ の独自仕様なので, 「一般的な参考書に載っていない」としてもしょうがないかと.
- MoguraSE
- ベストアンサー率64% (81/126)
こんにちは。 scanf()やstrcpy()などは、バッファオーバーフローを起こすとセキュリティホールとなりえるので、危険ですよ~という警告です。 同様の機能を持つセキュアな関数が用意されているので、そちらを使われたほうがよいと思いますが、一般的な参考書に載ってないので勉強には不向きですね… 下記の方法で警告を停止することができます。 http://wind-master.dip.jp/soft-info/item/61
お礼
なるほど。なかなか難しいですね。 とりあえず実行はできるのでしばらくは今のままやってみようと思います。 早々の返答ありがとうございました。
お礼
とりあえず問題ないみたいなので慣れるまでこのままでいこうかと思います。 早々の回答ありがとうございました。