アカウント名:
パスワード:
ポインタって、その概念的原理(つまり、なにかがなにかを「参照」する)と、 C独特の構文と、 の2者さえ理解すれば、逆にいえばたいして難関でもないと思います。 --------8<------8=-------- そういう意味では、ポインタバリバリでバギーなコードを書いちゃった時点で、その人の (Cに限らない)プログラミング能力を、俺は疑いますね。
ンなことはないって. ポインタ(Cみたいな素のポインタ)が問題なのは
べつにポインタでなくたってどの部分においても、プログラマが管理しきれなければプログラムは動きませんし、
違う違う.ライブラリ作者が管理するか,ライブラリ使用者が管理するか, あるいはコンパイラ/VMが管理するかで全然ちがってく
それはプログラムの「どんな」部分においても生じえる問題なので、 ことさらにポインタについてだけ言う意味が無い、ということになります。 ポインタの判らないプログラマもいれば、Classの判らないプログラマ、 Javaとかの参照が判らないプログラマ、継続の判らない(以下略…)と、色々居るわけですから。
(素の)ポインタの原理を理解したとしても,100とか200のポインタの挙動を管理しきれるもんじゃないよ.
どこからでも参照/変更出来る変数が、そんなにあるんだったら、ポインタ変数だろうが非ポインタ変数だろうが、10万行程度のプロジェクトでも収拾がつかなくなりませんか?だとしたら、単に設計が悪いってことなんじゃないかな。それはポインタ変数の善し悪しとは別の問題だと思います。いや、超大規模プロジェクトではそういうことがあるかも知れませんが、そこまで大規模なのは経験がないので分かりません。
構造体の中にポインタ変数があって、その構造体がいくつもある…という状況のことを指しているとしたら、英文の単語数えなんていうのが、それでできそうですね。うちの会社では新人研修生に演習課題としてよくやらせています。単語種別が数1000語ほどあるテキストファイルを入力として与えると、1つの構造体に文字列へのポインタと次の単語構造体へのポインタを持っているのが典型的パターンなんですが、その2000個ほどのポインタをちゃんと処理してくれるプログラムを書いてくれますよ。(笑)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
いい方に考えると (スコア:0)
ポインタバリバリ使ってバギーなコード書かれるよりはましかも。
卒業したらJavaに移行して貰えばいいし。
でもコンピュータサイエンティストなら、アセンブラはやって欲しいけどね。
Re:いい方に考えると (スコア:1, すばらしい洞察)
でも、同じ問題は結局JavaだのRubyだのでも生じますよね。ポインタつーか参照については。
単に症状の出方が違う(いきなりコアダンプするか、NullPointerなんたらExceptionが出るか、の違いというか)だけで。
ポインタって、その概念的原理(つまり、なにかがなにかを「参照」する)と、 C独特の構文と、
の2者さえ理解すれば、逆にいえばたいして難関でもないと思います。
あの程度のことを理解*できない*ような人ならば、情報系の学生だろうが仕事だろうが趣味(フリーソフトとか)だろうが
こっちとしてはちょっと
??? (スコア:0)
ンなことはないって.
ポインタ(Cみたいな素のポインタ)が問題なのは
Re:??? (スコア:0, フレームのもと)
>管理しきれないっつうことだよ.
あのー。
べつにポインタでなくたってどの部分においても、プログラマが管理しきれなければプログラムは動きませんし、
ポインタが格別に管理しきれないものであるというわけじゃない(もし管理しきれないものであるならば、
そもそもポインタを使ったプログラミングは不可能になっているはず)ですけど。
>関数を作る側は,さまざまな状況に対応できる様にしなくちゃいけないし,
>関数をつかう側は,その関数の挙動に精通しなきゃ危ない
( ゜д゜)ポカーン (スコア:1, 興味深い)
違う違う.ライブラリ作者が管理するか,ライブラリ使用者が管理するか,
あるいはコンパイラ/VMが管理するかで全然ちがってく
Re: ( ゜д゜)ポカーン (スコア:1)
たしかにそういう面はありますが、ポインタについては、そういう問題とは別の問題だと思うんですけど。
てゆーか、1つ前の文の論点は、そこではなかったように思います。
少なくとも、
>ポインタ(Cみたいな素のポインタ)が問題なのは,プログラムの挙動を
>管理しきれないっつうことだよ.
ってのは、なんか違うと思いますんで。
素であってもCのポインタ程度(^^;なら、管理し切れるのでは?
なにせ、単純(ひねくれてはいますが、ひねくれの少ない部分を切り出してそれしか使わないのは十分可能だ
Re: ( ゜д゜)ポカーン (スコア:1, すばらしい洞察)
(素の)ポインタの原理を理解したとしても,100とか200のポインタの
挙動を管理しきれるもんじゃないよ.
#私はこの辺が限界……
そして,(素の)ポインタだと,コンパイラ/VMの助けは期待できないし,
現象の再現しづらい地獄のデバッグが待っている……
完璧なプログラム/ライブラリだったら負担も少ないけど,
そんなことないからね.
#デバッグ半分,設計半分
『ポインタバリバリ』使った時点で『バギーなコード』になる
リスクはたかいよ.
野分
Re: ( ゜д゜)ポカーン (スコア:0)
>挙動を管理しきれるもんじゃないよ.
>#私はこの辺が限界……
>そして,(素の)ポインタだと,コンパイラ/VMの助けは期待できないし,
>現象の再現しづらい地獄のデバッグが待って
Re: たくさんのポインタ (スコア:1)
どこからでも参照/変更出来る変数が、そんなにあるんだったら、ポインタ変数だろうが非ポインタ変数だろうが、10万行程度のプロジェクトでも収拾がつかなくなりませんか?だとしたら、単に設計が悪いってことなんじゃないかな。それはポインタ変数の善し悪しとは別の問題だと思います。いや、超大規模プロジェクトではそういうことがあるかも知れませんが、そこまで大規模なのは経験がないので分かりません。
構造体の中にポインタ変数があって、その構造体がいくつもある…という状況のことを指しているとしたら、英文の単語数えなんていうのが、それでできそうですね。うちの会社では新人研修生に演習課題としてよくやらせています。単語種別が数1000語ほどあるテキストファイルを入力として与えると、1つの構造体に文字列へのポインタと次の単語構造体へのポインタを持っているのが典型的パターンなんですが、その2000個ほどのポインタをちゃんと処理してくれるプログラムを書いてくれますよ。(笑)
vyama 「バグ取れワンワン」