Q1002
Last-modified: Sun, 06 Mar 2016 15:09:02 JST (2970d)
Top > Q1002
カテゴリー
問題
次に掲げるC言語の関数のうち、stdin経由でキーボード入力を受け付ける際に絶対に避けるべきものはどれか。①scanf;②gets;③kbhit;④getchar
正解
正解は②getsです。
解説
- 書式指定で "%127s" のように入力バッファサイズを正しく指定すること、返り値を確認して正しくエラー処理すること、この2点を守れば安全です。
- getsには入力バッファサイズを指定する方法がありません。バッファオーバーフローが不可避です。
- Tight loopにならないようにsleep等で適切にOSにCPUパワーを返せば問題ありません。
- 使用が推奨される関数の一つです。
基準日
2015.06.11