アカウント名:
パスワード:
オーバフローというのは間違いで、次のようなコードで、どこを指しているかわからないポインタの 先のメモリを破壊するということを言いたかったのだと、想像します。
int *n; scanf( "%d", n ); /* *nの値をキーボードなどから入力(Enterで終了) */
突っ込む側もポイントをしぼって突っ込んでもらいたい。
Re:scanf [srad.jp] で言及されていますが、これは他の記事について書かれたものと思われます。
こちらでしょう C/C++のデータ型と書式を知る:入力の書式 [zdnet.com] ちなみにそこに comment しているのは私です。 ついでにこんなのも書きました。 scanf って教える必要ある?(初心者に教えるときでも最初から脆弱性が発生しない方法を教えよう) [wankuma.com]
指摘は全く問題ないと思います。
それは言及できるだろうが、このポインタの説明においては冗長だと思う。
上記については同意です。ですが、scanf を解説するときにも問題のある code を書いているのは問題ですよね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
scanf (スコア:1, 興味深い)
さすがにこれは偏執狂ではないかと思うのだが・・・・・
ポインタの概念を教える授業でしっかり時間があれば
それは言及できるだろうが、このポインタの説明においては冗長だと思う。
その指摘を書いた人物は教師であると名乗っているが、
正確さを期そうとして、重要な事を述べる場面で注釈をいくつも付ける授業を行うのだろうか?
突っ込む側もポイントをしぼって突っ込んでもらいたい。
# だいたいからポインタの全てが2ページの記事で解説できるわけないじゃないか
# 概念の入り口の説明という認識にとどめるべき(まあそれも怪しかった訳だが・・)
# それに、俺たちが昔使ってた本にだって間違いは何かとあっただろ?
# 本や解説の間違いで行き詰まるのも勉強だと思うよ。
説明が下手なだけでは (スコア:1, 興味深い)
オーバフローというのは間違いで、次のようなコードで、どこを指しているかわからないポインタの 先のメモリを破壊するということを言いたかったのだと、想像します。
int *n;
scanf( "%d", n ); /* *nの値をキーボードなどから入力(Enterで終了) */
Re: (スコア:0)
ポインタ変数は宣言しただけでは領域確保されませんよ、という指摘に見えなかったもので。
それにそういうのって・・・やっぱ注釈レベルだと思うし・・・
# 何で俺が言い訳してる気分になるんだろ・・・
Re:scanf (スコア:1)
「scanf->バッファオーバーフロー」という脊髄反射だろうよ。
Re: (スコア:0)
scanfは注意深く使えば便利な関数ですがどう考えても入門向けじゃないのでscanfを素人に教えないと判断するのは妥当(教える側も素人ならなおさら)ですが、偏執狂とか脊髄反射とか居直っているようじゃ今回のライターと同レベルですね。いや同レベルにしてしまっては素直に反省しているくだんのライターに失礼でした。お詫びして訂正します。
Re: (スコア:0)
Re:scanf (スコア:1)
そこはほれ。話がポインタ操作間違いに関する話だけに、絞込みもままならないかと。
# よし。うまい事いえたぞ。
fjの教祖様
Re:scanf (スコア:1)
Re:scanf [srad.jp] で言及されていますが、これは他の記事について書かれたものと思われます。
こちらでしょう
C/C++のデータ型と書式を知る:入力の書式 [zdnet.com]
ちなみにそこに comment しているのは私です。
ついでにこんなのも書きました。
scanf って教える必要ある?(初心者に教えるときでも最初から脆弱性が発生しない方法を教えよう) [wankuma.com]
指摘は全く問題ないと思います。
上記については同意です。ですが、scanf を解説するときにも問題のある code を書いているのは問題ですよね。
Re: (スコア:0)
申し訳ない、そこまでたどってみていませんでした。
scanfの説明で、バッファオーバフローに触れないのはアウトですね。
# 最近C書いてないから人ごとじゃなくなってきてるかもなぁ
Re: (スコア:0)