ページ内ジャンプ:

アレゲなニュースと雑談サイト

nabeshinによる 2008年04月01日 14時46分の掲載

あるAnonymous Coward 曰く、

ZDNetに C/C++のポインタの機能 — 参照渡しのような処理というポインタの解説記事があるのだが、 中身がなかなか香ばしい。コメントにもあるように、記事の間違いを探すということで ポイントを理解させるというネタには使えるのだろうか。

訂正も行われたが、根本的には直っておらず、再レビューとなっているようだ。

現在、本稿には技術的な誤りが存在するため、詳細をレビュー中です。 初めてご覧になる方は、コメント欄もあわせてお読み下さい。 また、読者の皆様には引き続き、コメントなどでご意見を頂けましたら幸いです。
とのこと。
この議論は賞味期限が過ぎたので、保存されている。 新たにコメントを書くことはできない。
表示オプション しきい値:
  • 騙されました。 (スコア:4, おもしろおかしい)

    Anonymous Coward : 2008年04月01日 15時01分 (#1323154)
    あまりの出来に、あやうく騙されるところでした。
    4/1の記事としては、最高の出来だと思います。
  • Super KUMASAN (34209) : 2008年04月01日 15時40分 (#1323189)
    技術的な誤りを修正すれば「メデタシメデタシ」では無い。そもそもの記事の意図が意味不明であることが根本的な問題。こんな細かな議論をする前に、なぜポインタが必要なのかということを述べるべきだと思う。また、絵がないのも良くない。絵を使わずにポインタを理解できるわけがない。ひとことでいうとプロのライターの仕事では無い。
  • プログラマの面接の時にこの記事を見せて、3分以内に問題を指摘できない奴は採用しないとか。
    --
    署名スパムがウザい?アカウント作って非表示に設定すればスッキリさ。
  • つれたつれた (スコア:3, おもしろおかしい)

    niratama (2175) : 2008年04月01日 16時00分 (#1323217) ホームページ 日記
    実はCの解説記事を書けるライターを探すための釣り記事……

              ,~~~~~~ 、
    |\     ( 釣れたよ~・・・)
    |  \    `~~~v~~~´
    し   \
    ゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ
              ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                     ト>゚++
  • Anonymous Coward : 2008年04月01日 15時15分 (#1323170)
    その昔、この件と同様のポインタ変数の誤った説明が載ったC言語入門書が
    あって、買ってはいけないプログラミング教本の第一位に輝いたとか、
    新入社員プログラマにはこの本で勉強した経験があるかを最初に確認し、
    誤った知識を矯正せよ。
    などと言われたものですが。

    本のタイトルと著者が思い出せない...
  • Null 部門名 Exception (スコア:2, おもしろおかしい)

    Anonymous Coward : 2008年04月01日 15時24分 (#1323174)
    各方面からの指摘・訂正も行われたが、根本的には直っておらず、(編集者としての資質を)再レビューとなっているようだ。
  • 今日の記事だから、エイプリールフールで「ヌルポ ガッ」ネタかっ! と思ったら、ZDNetでのリリースが3月27日でマジネタだった…
    --
    天琉陳(Teruching)
  • reo (4042) : 2008年04月01日 15時05分 (#1323158) ホームページ 日記
    #1322924 [slashdot.jp]
    --
    Hiroki (REO) Kashiwazaki
  • yun (448) : 2008年04月01日 15時11分 (#1323167)
    昨今、Cを書けなくてもプログラマなんてやっていけるから、間違い自体が悪いとは言わない。
    でも、自分がまったく理解していない言語の理解していない概念について、適当に聞きかじりと思い込みだけで記事を書くなよ、とは言いたい。
    編集と著者の最低限の誠実さを疑う。
    当該編集部と著者の名前は私の中ではブラックリスト入り確定です。
  • scanf (スコア:1, 興味深い)

    Anonymous Coward : 2008年04月01日 16時11分 (#1323233)
    元記事のコメントにscanfのバッファオーバフローに付いて言及しているものがあった。
    さすがにこれは偏執狂ではないかと思うのだが・・・・・

    ポインタの概念を教える授業でしっかり時間があれば
    それは言及できるだろうが、このポインタの説明においては冗長だと思う。

    その指摘を書いた人物は教師であると名乗っているが、
    正確さを期そうとして、重要な事を述べる場面で注釈をいくつも付ける授業を行うのだろうか?

    突っ込む側もポイントをしぼって突っ込んでもらいたい。

    # だいたいからポインタの全てが2ページの記事で解説できるわけないじゃないか
    # 概念の入り口の説明という認識にとどめるべき(まあそれも怪しかった訳だが・・)
    # それに、俺たちが昔使ってた本にだって間違いは何かとあっただろ?
    # 本や解説の間違いで行き詰まるのも勉強だと思うよ。
  • nique (17169) : 2008年04月01日 16時35分 (#1323256) 日記
    初心者向けにCの概念を解説しているわけでC++の記法にする必要がない部分ですよね。
    単に

    int n; // 整数型変数nを定義
    int *p; // 整数ポインタ型変数pを定義

    n = 5; // nに5を代入
    p = &n; // pにnのポインタを代入
    *p = 10; // pがポイントする変数に10を代入

    見たいに書けば間違いも起こりにくくわかりやすい気がするんですけど。
  • 変数宣言時に初期化していれば、この筆者にも問題がわかったのではなかろうか?

    int *n = NULL;
    *n = 5;
    いくらポインタに対する理解が適当でも、このコードを動くと思う人は、ほとんどいないと思うのだが。
  • gccに限った話になるのかもしれませんが、"-O0"(最適化なし)では予想通りSEGVしましたが、"-O2"するとコケないみたいです。



    もしかして無意識にオプティマイザに助けられていて意識するのを忘れていたとか?
    --
    -- やさいはけんこうにいちば〜ん!
    • いや、こけないわけではなくて…。

          movl    $5, %eax
          movl    %eax, 4(%esp)
          movl    $.LC0, (%esp)
          call    printf
      *n に入るべき値を %eax に代入しなおして、そっちを printf() に渡しているだけで。

      実はその前の1行:

          movl    $5, (%eax)
      が死ぬほどやばい。
      %eax は main() 関数に入ってきて以来、初期化されていない。
      その「どこを指しているんだかよく判らないもの」が指している所にドガンッと5を書いちゃってる

      これがヒープを壊しているのか、スタックを壊しているのかは判らないが(なんかヒープのどっかを指しているっぽい)、とにかく、どこかを壊しているのは間違いない。今回は小さなプログラムだったので、破綻が表出する前に終了しているのに過ぎない。
      --
      fjの教祖様
    • 1個のコメント が現在のしきい値以下です。
  • ポインタ=レジスタ間接アドレッシングというアバウトな
    理解じゃいけないのでしょうか。
    と、アセンブラで開発してた人間がつぶやいてみる。

    …そもそもCの関数が値渡しなのって、引数を
    スタックに積んでcallするからで、参照渡し
    「みたいなこと」するにはポインタを値渡しする必要が
    あるからだったのでは。
    68kってlink,unlinkってそれ用の命令もあるし。
    --
    正義なんかじゃない、僕は真実が欲しい -= ありす ゆう =-
  • Anonymous Coward : 2008年04月01日 15時12分 (#1323168)
    私が驚いたのは、筆者がIBMのチーフエンジニアとして執筆や講演にご活躍されていることですね。
    自分でプログラミングすることなんか全く無いんでしょうね。
  • TarZ (28055) : 2008年04月01日 15時25分 (#1323177) 日記
    どういう過程を経てこの記事が世に出たか、類似例やその失敗の構造が明らかになるなら有益では。(ライター氏はお気の毒ですけど)

    技術系記事のライターって不足しているんですかね? Webの記事なら、「紙面に穴が開いたから急遽代理で…」なんてこともないと思うのですが。

    それとも、今更C言語の記事を引き受けてくれるライターがいないってことかな。
  • Re:まあまあ (スコア:2, 興味深い)

    127.0.0.1 (33105) : 2008年04月01日 16時00分 (#1323219) 日記
    社会学的な視点からすると、別にこの記事を書いたライターや
    編集の人の能力がどうとかいうのはこの際どうでもいいんだけど、
    それで終る話でもないんですよ。

    笑い者になる/なっていると感じるかどうかは当人やこれらの話題を
    見た人の印象しだいだし、この人の著書はこれからは避けようとか
    思うのもそれぞれの自由。当人達が恥ずかしいと思ったら
    記事を訂正した上で、これから精進すればいいだけの話。
    (失った信用はなかなか取り戻せないと思うけど)

    しかし、それとは別に、こういうのは見つけたらその都度
    (というのもダルい話だが)徹底的にたたいて注意を喚起しとかないと、
    気がつくと間違った知識がゴキブリみたいにはびこって大変なことに
    なります。

    そこらの野良サイトの素人の書きなぐり記事ならともかく、
    れっきとした技術系サイトと一般的には思われるであろうZDNetに
    載っているような記事だと、影響力が大きいでしょうし。

    公共団体のサイトでが無断リンク禁止とか書かれていて
    一般サイトでもそれにならってしまう件とか、どこかのサイトで
    SSLについての誤った文章が書かれて、それがコピペされて
    いろんなところで使われてしまったりとか、そんなところを
    見つけて電凸しては指摘しているjbeef高木先生の苦労がしのばれます。

    ……なんて殊勝なことは考えたことなくて、実はおもしろおかしければ
    どうでもいいんですけどね
    #いや、それ、エイプリルフールで言ってみただけですから信用しないでね!
  • 8個のコメント が現在のしきい値以下です。