今まで見たポインタの解説で最も間違っているもの [プログラミング]
これはひどい。書いてる人がどこをどう間違っているかは、あとでまじめに検討するとして、
http://builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20370255,00.htm
ここ↑のページの最後のプログラムが明らかに間違っている。他も間違っているんだろうけど、とても読む気がしない。
内容が書き換えられる可能性が大なので、リストだけこちらに引用させていただく。
アドレス不定なポインタ変数の参照先への代入。もっとも恐るべき類のバグ。
ポインタの解説記事のはずなのに・・・
・・・はてなにもブックマークされてた
http://b.hatena.ne.jp/entry/http://builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20370255,00.htm
「コンパイル通らない」とコメントに書いてる人もいるけど、それってどの処理系? FreeBSD 7.0 (gcc 4.2.1) ではコンパイル通るよ。動かすと Segmentation fault になるけど、ちゃんと動いちゃう処理系もあると思うよ。だから、コンパイルして動かしてないだろ!といういのは言いすぎだと思うが。
http://builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20370255,00.htm
ここ↑のページの最後のプログラムが明らかに間違っている。他も間違っているんだろうけど、とても読む気がしない。
内容が書き換えられる可能性が大なので、リストだけこちらに引用させていただく。
#includeint main( void ) { int *n; *n = 5; /* ポインタ変数nに値5を代入 */ printf( "%d\n", *n ); /* ポインタ変数nが持つ値(5)の出力 */ return 0; }
アドレス不定なポインタ変数の参照先への代入。もっとも恐るべき類のバグ。
ポインタの解説記事のはずなのに・・・
・・・はてなにもブックマークされてた
http://b.hatena.ne.jp/entry/http://builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20370255,00.htm
「コンパイル通らない」とコメントに書いてる人もいるけど、それってどの処理系? FreeBSD 7.0 (gcc 4.2.1) ではコンパイル通るよ。動かすと Segmentation fault になるけど、ちゃんと動いちゃう処理系もあると思うよ。だから、コンパイルして動かしてないだろ!といういのは言いすぎだと思うが。
$ gcc -W -O x.c
x.c: In function `main':
x.c:4: warning: `n' might be used uninitialized in this function
gccは、オプションをつけないと、Warningを出さないみたいです。
それはそれで、問題かも。
by noritan (2008-03-31 09:44)
最初のうちに掲載されてたコードは、stdio.hの指定が「タグ」と勘違いされてて見えませんでした。
なので、単にコピペしただけだとコンパイルすら出来ませんw
by wakatono (2008-03-31 13:30)
noritan さん
Cコンパイラがシンタックスチェックをほとんどしないで、 lint というツールが別に必要だった時代を考えたら、Warning 出ないくらい大した問題じゃないですよ。
by nakagami (2008-03-31 17:05)
wakatonoさん
>・・・stdio.hの指定が「タグ」と勘違いされてて見えませんでした。
おーっ、なるほど!ブクマコメントの意味がようやくわかりました。
それはそれで(記事ではなくシステムに)問題がありそうな。
by nakagami (2008-03-31 17:14)
negative side effects of cialis https://acialisd.com/ - Cialis Cephalexin 500 Mg Side Effects <a href=https://acialisd.com/#>where can i buy cialis on line</a> nerve pain shooting cialis
by hoacits (2020-07-05 13:12)