アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
除算エラーがでました (スコア:0)
{
int a;
char buf[256];
printf("ドメインいくつ持っている?");
gets(buf);
a = atoi(buf);
printf("あなたの常識度数 : %d", 100 / a);
}
/* 実際にコンパイルして動かしていないのでAC */
良い子のお約束 (スコア:0)
Re:良い子のお約束 (スコア:0)
printf("あなたの非常識度数 : %d", 100 / atoi(gets(buf)));
Re:良い子のお約束 (スコア:0)
sprintf 系も外部からの入力を直接 受け取るような所には使っちゃダメ。極力、snprintf 系を使う。
短いプログラムでもちゃんとした API を使う癖をつけないと、
ついつい「本番」のプログラムで書いちゃうよ。
それが嫌なら C/C++ は捨てて、もっと secure な言語で書こう。Java とかね。
約束だよ。
Re:良い子のお約束 (スコア:0)
>ついつい「本番」のプログラムで書いちゃうよ。
僕も昔はそう思っていましたが、本当にそうでしょうか?
gets/scanf がセキュリティーホールであることを知っているプログラマーが自分で使う使い捨てのプログラムで gets を使っていても、本番」のプログラムで使うとは思えないんですが。
僕はそうです。(使い捨てのプログラムでは gets を使うけれども本番では*決して*使わない)
組み込み系で gets はあっても fgets のない C言語を使ったこともあります。(勿論デバッグの時しか使わないんだけれども)
gets/scanf の危険性を注意することは重要だとは思いますが、最近のコンパイラはだいたい警告を出しますから。