fj.comp.lang.c,今度は構造体ポインタ
1 :
fjウォッチャー:
また喧嘩してます。よっぽど喧嘩が好きなんでしょうか?
構造体ポインタがどうしたんだよ!
PFUの片山さん萌え
針箱さんに萌えるひとはいないでしょう
え、あれ喧嘩してたの?
え、あれ喧嘩してたの?
いえ、あの人達なりにマッタリやってると思います。
7 :
仕様書無しさん:01/10/04 19:36
そうなんだ。
8 :
仕様書無しさん:01/10/04 21:12
鶴田(SYN)さんと針箱さんがいつものようにやりあってますけど
それでもマッタリなんですか?(^^;
おお、またいつもの「NULLはゼロか」問題が。
質問の再発明だぞ、こりゃ
言葉を選べば質問の再発見ですね
11 :
仕様書無しさん:01/10/04 21:35
12 :
仕様書無しさん:01/10/04 21:46
fj.comp.lang.cは実は無限地獄なんだよ。
……ここもだけど。
リンク張ってほ
誰かあのDQNを何とかしてくれ…。それとも俺がDQN?!(鬱)
15 :
仕様書無しさん:01/10/05 13:27
つーか、あの連中はよっぽど暇なんだろうな・・・
18 :
仕様書無しさん:01/10/12 00:26
鶴田(SYN)さんが針箱さんを
DQN、消防とか呼んでますね。
鶴田(SYN)さんも2ちゃんねらー?
2chと外との区別がつかなくなったら人間おしまいだな
>> 18
どうだろう?ここを読むだけで2ちゃんねらーになるら、そうかな。
>>20 書いてるじゃん。
てのはともかく、すでに不毛と化してるし、結論を誤解する人もなさそうなので
放置が良いと思われ。ていうか、見てて痛いです。
最初の投稿が読めないのだが
一体何の議論をしてるんだ?
後の方は話が発散していてわけわからん
>>22 最初の質問なんかすでに吹っ飛んで、関係ない世界に突入して盛り上がってる。
「議論のためにはネタを選ばず」な連中が揃っているので、最初の投稿を気にして
も意味がないと思われ。
>>23 最近閑散としているからな。みんな fj 以外だと、どういう
技術系コミュニティに参加して議論しているんだろ。
>> 21
あっさり引けるほど、俺は大人じゃないんだよな。ある意味DQNだと思う。
病的なほどクロック削る執念も、あの議論を続けるのも俺の中では同じというか。
26 :
仕様書無しさん:01/10/12 21:40
27 :
仕様書無しさん:01/10/12 21:43
>>24 会社では理屈っぽいやつと思われ、議論をふっかけても
最近では「あー、わかったわかった、おまえはえらい」
と煙たがられたり、シカトされるので、議論したくて
うずうずしている連中がたまっているとか
>>25 >病的なほどクロック削る執念も
今のご時世では、病的ではなく病気。
>> 26
そうだにょ。
>> 28
悪かったな(藁)。自分でもそう思うけど(鬱)。
30 :
仕様書無しさん:01/10/13 10:40
原理主義的思想が高いのかな?
なぜ動作するのか追求するのはいいけど
それだと本質的なところを見失う可能性がある。
美の追求は破滅。
いまこそ malloc & free を2ちゃんに
>>31 そんな議論は何回もやって飽きているネット暦長いのが多いから
別にいらんだろ。つーか2chの基本は議論よりwatchだろ。
実際のところ malloc & free で明示的解放しない場合に、実在するかどうかも
わからないような架空の環境もちだして危険だとか言う前にもっと見直すべき
ロジックやバグがあるだろうにな(藁
個人的には出来る範囲で明示的に開放するようにした方が丁寧に書くクセが
ついてよいと思うが、まあこれも人それぞれか。
sage
>>27 だとすると、議論しようとしない周りの方が技術者としては低レベルだな。
本当に技術者として高レベルな人は、技術に関する知的好奇心が高いから
議論したがる。
mallocなんてこの1年使ったことがないざますよ。
もうobsoleteな問題とちがうの? そうでもない?
obsoleteな人間にはobsoleteな言語と議論が必要なのよ
ほっといてやりな
>>35-36 さすがに C を obsolete というのは、まだ早いと思われ。
箱にはもう日本語を勉強してくれとしか言いようがない。(;;´Д`)
40 :
仕様書無しさん:01/10/16 11:17
鶴田君さー、
>「バグらなければ良いという話でもない」という前提において「ど
>んな場合でもマズイ」、これに対する反論は今のところありません。
># それでも動くだろうけど、書き方としてはマズいわけです。
のレベルの話を延々fj.comp.lang.cで続けて鼻高々にならないでくれる?
まぁ、枯れ木も山の賑わいなんだろうけどさ、君が登場すると「必ず」
場が白けてるよ。気づかない?
鼻高々じゃないよ。当たり前のことを書いているだけ。
その程度で白ける人を相手にしていないから。あそこは2chとは違う。
>>41 もう箱に突っ込むの止めたら。前の malloc&free の議論の
時にも思ったが、箱は日本語の読解力がかなり劣っている。
つーか、言葉の解釈や理解の仕方が一般人とかなりずれている。
だから、何を言っても彼とはすれ違うだけだと思うよ。不毛。
それから 2ch 以外のメディアで DQN とか使うのは、TPO を
わきまえないと判断されても仕方がないぞ。さらに頼光もどき
の捨てぜりふもみっともない。
>>41 ズバっと論破できない所が君の弱点。
言いたいことを最初から言えないのも君の弱点。
箱はほっとけよ。
うざいんだよ。
>>41 あんた、前にどっかで「もう箱には突っ込まない」って書いてたジャン。
毎度毎度のことだけど、ことの始まりは、箱への君のfollowだよね。
いいかげんにしろよ。
>> 42
箱に突っ込む(なんかこの表現ヤダな)のが目的ではなく、あくまで記事内容に
ツッコミを入れているつもりだったんだけどね。箱氏の意見を支持している人
もいるので、野放しにしておくのはどうかと。
DQNに関しては「#」をつけておいたので、まあ大目にみてくれ。それでもダメっ
ていわれたら、シグネイチャにでも書くか。
>> 44
ええっと、その件はmalloc&freeに関してです。
>>45 なんかその >> と数字の間にホワイトスペースを挟む引用のやり方
がファルコムスレのルーンバトラーに似ている。ひょっとして
ルーンバトラーの正体は鶴田君かね。
47 :
仕様書無しさん:01/10/16 16:10
> あそこは2chとは違う
あまり興味のない人には似たようなものと思われ(藁
>> と数字の間にホワイトスペースがあると、
2ちゃん本体のレス参照機能が効かなくなって不便だな〜
>>48 転送量(リンク分の数バイト)気にしてるんだよ。きっと。多分。おそらく。
うちのニュースサーバが欠け欠けだったので、今日 Queen で関連投稿を確認。
箱がやってる NULL をポインタ以外に使うなんて「free しない」
どころじゃない初心者(想定上のもので実在するとは限らない)への
害があるんじゃなかろうか。
明示的じゃないし、明らかに規格から外れてるし。
いちゃもんつけるためなら手段を選ばないって最低。
51 :
仕様書無しさん:01/10/18 16:06
岡部ってひと、箱ちゃんの味方なの?
そのわりには、ニフティのフォーラム常連なみの
レベルの低い反論するなあ、と思ったら、
やっぱりニフティ使っているんだな。(笑)
52 :
仕様書無しさん:01/10/18 16:37
>>50 あれで完全に箱の味方はいなくなったな。
いや岡部がいたか。
NULキャラクタの替わりにNULLを使う奴なんてくさるほどいるぞ。
動くんだからいいじゃん。
>>53 > NULキャラクタの替わりにNULLを使う奴なんてくさるほどいるぞ。
腐ってるのは、そいつらの脳に 1 ガノッサ。
55 :
仕様書無しさん:01/10/18 20:50
>>54 そいつらが腐ってようが、脳が腐ってようが関係ない。
現実にそういう奴等が存在し、現実に問題なく動いてるんだからいいじゃんという主張。
そんな「規則に照らし合わせればやっちゃいけないことをやってる」ことなんて、
この世界には山ほどあって、いちいち指摘してたらきりないじゃん。
現実問題、memset(buf, NULL, sizeof buf)で問題ないんだからさ、硬いこと言うなよ。
>>55 そうそう。なにやらかしたって、バレなきゃ犯罪にならないのと同じ。
エラーが出たら、ソースコードをプログラマーごと裏山に埋めちまうのさ。(w
>>56 勘違いしてるね。
エラーは出ないのだよ。
だから問題なし。
>>57 勘違いしているね。
(コンパイラが変わったりして)将来にわたってエラーが出ない保証はないのだよ。
だから今はまだ問題が顕在化していないだけ。
>>55 > 現実にそういう奴等が存在し、現実に問題なく動いてるんだからいいじゃんという主張。
int n[10] で n[10] を読み書きするのも問題ないんだろうね、きっと(w
他人のことなんぞほっとけばいいじゃん。
友達だとか部下だとか言うならばともかく、知らない誰かが0の代わりに
NULL使ったって知ったこっちゃないだろう。
自分の手の届かないところのことは無視するのがいいと思うよ。
鶴田氏は箱氏相手に偏執的に遊んでいるだけじゃないの?
61 :
仕様書無しさん:01/10/18 23:15
>>58 >(コンパイラが変わったりして)将来にわたってエラーが出ない保証はないのだよ。
だって、現実に今動いてるからいいじゃん。
実際に問題になるようなコンパイラに変えたとしたら、sedでも使えばいいじゃん。
>>59 >int n[10] で n[10] を読み書きするのも問題ないんだろうね、きっと(w
もうね、アホかと。
NULLの問題と全然違うじゃん。
62 :
仕様書無しさん:01/10/18 23:16
つーか、そんなつまんねー重隅つついてないで、バグを取れよ。
>>61 > NULLの問題と全然違うじゃん。
いや、同じ。
int n;
n = NULL;
これで n = 0 になるとは限らんのだよ。そもそも NULL が (void *)0 とか定義されていたら
コンパイルエラーだし、整数で定義されていても 0 とは限らない。もっとも
0 == NULL
は NULL の表現によらず必ず真になることは保証されているけど。
>鶴田氏は箱氏相手に偏執的に遊んでいるだけじゃないの?
しかし絡んできたのは箱だし。
雉も鳴かずば撃たれまいに、ってやつでしょう。
>NULLの濫用と即値コーディング
同種の問題だと思う。alias の利益を享受したけりゃ
正しく使おうよって事で。
がそこは置いといて、
「K仲川MLに入りたい!」って Subject のフォローが3つ。
NNTP-Posting-Host がまったく普通だし、これってマ板発の天然 abuser かな。
Path の途中にある Q.T.Honey ってのはなんだコリャ。
65 :
仕様書無しさん:01/10/19 18:46
>>63 >これで n = 0 になるとは限らんのだよ。そもそも NULL が (void *)0 とか定義されていたら
だから、
#define NULL 0
#define NULL (void *)0
だったら0になるじゃん。
ならない処理系があったら教えてくれや。
バッファオーバーランと一緒にすんな、ヴォケ。
>コンパイルエラーだし、整数で定義されていても 0 とは限らない。もっとも
エラーなんかになるヘタレコンパイラーは捨てろや。
66 :
仕様書無しさん:01/10/19 19:00
>64
> 天然 abuser
放置プレイでお願いします。
ビョーキなんです。許してあげて
>>65 VC6 だと
n = NULL;
は警告対象だが。捨てた方が良い?
>>67 エラーになってるの?なってないの?
エラーになるんだったら捨てなされ。
>>65 > ならない処理系があったら教えてくれや
C FAQ から抜粋。
---
5.17: ヌルポインタに0以外の値を使用するマシンや、異なる型のポイン
タに異なる内部形式を持つマシンは本当に存在するのか。
A: Prime50シリーズは少なくともPL/Iでは、セグメント07777・オフセッ
ト0をヌルポインタの内部表現として使っていた。後のモデルはセグ
メント0・オフセット0をCのヌルポインタに使った。このために
TCNP(Test C NULL Pointer)のような新しい命令が、それまでに誤っ
た思い込みをして書かれた、ヘマなCプログラムを救済するために必
要となった。もっと古い(バイトアドレスではなく)ワードアドレス方
式のPrimeのマシンもまた、ワードポインタ(int *)よりもバイトポイ
ンタ(char *)のほうが大きいことでも悪名高かった。
Data GeneralのEclipse MVシリーズには、アーキテクチャが用意する
3つのポインタの形式(wordとbyteとbit)が存在した。このうち2つ
はCコンパイラによって使われる。byteポインタはchar *とvoid *
に、wordポインタは残りのすべてのポインタ型に使われている。
Honeywell-Bullのメインフレームの中には、ビットパターン06000を
(内部の)ヌルポインタとして使っているものもある。
CDCのCyber 180シリーズはリング・セグメント・オフセットからなる
48ビットのポインタを持っていた。多くのユーザー(リング11で走る)
はヌルポインタとして0xB00000000000を使う。古いCDCの1の補数表現
のマシンでは全ビット1のワードは、ありとあらゆる種類のデータの
特別なフラグとして使われた。その中には違法アクセスも含む。
古いHP 3000シリーズはバイトアドレスとワードアドレスで異なるア
ドレス指定の方法を使っていた。だから同じアドレスを指していても、
voidとcharのポインタは、intの(構造体なども)ポインタと違っ
た内部表現を持っていた。
Symbolics社のLISPマシンは、タグ付きアーキテクチャなので、そも
そもポインタを数値で表すという通常の概念さえ持たない。
<NIL,0>(基本的には、存在しない<object,offset>のハンドル)をCの
ポインタとして使っている。
80*86プロセッサは(PC互換機では)メモリモデルによっては、デー
タに16ビットポインタを使い、関数には32ビットポインタを使う。
また逆のこともある。
64-bitのCrayマシンの中にはint *の表現にワードの下48ビットを使
い、char *はワード内のバイトアドレスであることを示すために上16
ビットを使っているものもある。
References: K&R1 Sec. A14.4 p. 211.
>>69 そんなことは百も承知。
>実際に問題になるようなコンパイラに変えたとしたら、sedでも使えばいいじゃん。
違った。
>>70は取り消す。
>>69 俺が言いたいのはそういうことじゃなくて、
>#define NULL 0
>#define NULL (void *)0
>だったら0になるじゃん。
>ならない処理系があったら教えてくれや。
ということ。
ならない処理系にポーティングする必要があったら、sedでも使えという主張。
この世の中で0の替わりにNULLを使って気づかない奴なんてごまんといるし、
そんな奴らに「0の替わりにNULLを使え」というのは無意味だという主張。
そんな啓蒙するんだったら、もっとほかにあるだろ、することが。
>>70 本当に NULL を意図している部分と、ビットパターン all 0 を意図している部分を
機械的に区別できるの?
っつーか、なんで問題をわざわざ呼び込んでおいて、後から対処しようとする。
最初から 0 もしくは '\0' と書いておけば何ら問題ないというのに。
>>71 > この世の中で0の替わりにNULLを使って気づかない奴なんてごまんといるし、
NULL の代わりに 0 を使え、だと思われ。
> そんな啓蒙するんだったら、もっとほかにあるだろ、することが。
そんなこと 2ch で言っても仕方ないに一票。
おもしれーな、みんなsageしながら盛り上がっているスレ
わからんちんだねー。
>>72 >っつーか、なんで問題をわざわざ呼び込んでおいて、後から対処しようとする。
>最初から 0 もしくは '\0' と書いておけば何ら問題ないというのに。
そうだよ。誰もそれは否定して無いでしょ。
1. 現状、0あるいは'\0'と書くべきところにNULLと書く奴がいる
2. 現状、そいつの環境では、エラー無しでコンパイルでき、ちゃんと動いている
3. だからいいじゃん。
という主張なんだな。
だから、そいつに「そこにNULLを書いちゃいかん」という時に理由を提示するとすれば
A. 将来どうなるかわからんぞ
B. ちゃんと動かない処理系があるんだぞ
C. 規約としてNULLと書いちゃ駄目なんだ
つーのは、理由が弱いんだよ。
だって、そいつの所では、エラー無しでコンパイルも出来てるし、動いてるんだから。
>>75 それって、
1. 現状 int n[10] と定義して n[10] を読み書きしてるやつがいる。
2. 現状、そいつの環境では、エラー無しでコンパイルでき、ちゃんと動いている
3. だから良いじゃん
と変わらん気がするが。
>>76 アホか。
連続してスタックに積まれている変数があったら、壊れるだろうが。
どこが一緒なんだよ。
ここで日下部氏の登場を願おう。
>>77 > どこが一緒なんだよ。
環境依存なところ。
struct {
char c[3];
double d;
};
アライメントの関係で &c[3] と d の領域は重ならない環境を前提にして、この
構造体の場合には c[3] にアクセスするのは問題ない、と言うわけ?
そうそう「分かってて 0 と NULL を混同してるヤツ」に関しては、何もいう気はないの
で念のため。俺もWin32 のポインタを含む構造体を初期化するときに memset() 使っ
てるし。ただ char に NULL を代入するようなヤツが、そこまで深く考えているとは思
えん。
日本語が不自由なんですね。
------------------------------------
ヘ_ヘ
ミ ・ ・ ミ
( )〜
[email protected] ------------------------------------
>>79 >アライメントの関係で &c[3] と d の領域は重ならない環境を前提にして、この
>構造体の場合には c[3] にアクセスするのは問題ない、と言うわけ?
問題あるよ。
だって、
struct {
char c[3];
char c2[3];
double d;
};
ってな変更が入ったら地獄行きでそ。
>>79 そういうのは環境依存とも処理系依存とも言わない。
レベル低いな。
全くだ。
fjらしくなってまいりました(ワラ
>>84 このスレで、延々と議論してるウチの一人だけど。
このスレって、こういうレベルの低い不毛な論争を延々と続けるスレッドじゃないの?
fj.comp.lang.c の方は箱が新たなネタを提供してくれいないのでウォッチしても面白み
に欠けるし、頑張って fj っぽいネタを提供してる次第だが。
ネタ切れ。。。
90 :
仕様書無しさん:01/10/19 22:15
まあそんなことより皆、ちょっと聞いてくれよ。スレと多少関係あるからさ。
昨日、fj.comp.lang.c行ったんです。fj.comp.lang.c。
そしたらなんかspamがめちゃくちゃいっぱいでまともな記事が無いんです。
で、よく見たらなんか長々としたスレッドがあって、構造体のポインタがどうこうとか騒いでるんです。
もうね、アホかと。馬鹿かと。
ポインタだよ、ポインタ。
お前らな、ポインタ如きで普段投稿してないfj.comp.lang.cに来てんじゃねーよ、ボケが。
なんか屁理屈こね回してるのもいるし。厨房連中で馴れ合いか? おめでてーな。
よーしパパハンガリアン記法再発明しちゃうぞー、とか言ってるの。もう見てらんない。
お前らな、3600円やるからFAQ買ってこいと。
fj.comp.lang.cってのはな、もっと殺伐としてるべきなんだよ。
voidとか片山とかの常連といつflameが始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。初心者は、すっこんでろ。
で、やっと落ち着いたかと思ったら、また例の箱が、うちの環境ではとか言ってるんです。
そこでまたぶち切れですよ。
あのな、おまえの環境なんてだれも興味ねーんだよ。ボケが。
得意げな顔して何が、うちの環境、だ。
お前は本当にNULLと0の違いを分かってるのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、議論の前提を理解してないだけちゃうんかと。
fj.comp.lang.c通の俺から言わせてもらえば今、fj.comp.lang.c通の間での最新流行はやっぱり
exit()前にfree()、これだね。
exit前にfreeすると主張する。これが通の主張のし方。
exit前にfreeってのはモジュール化願望が多めに入ってる。そん代わりコストも高め。これ。
で、とにかく全部freeしとけばデバッグ楽チンでしょと叫ぶ。これ最強。
しかしこれをすると頭が悪いとバレるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあそこの箱、お前みたいなのは、『はじめてのC』でオナーニに挑戦してなさいってこった。
キャノン
92 :
キヤノンといえば:01/10/19 22:37
そういやLaLaさん、fjで見かけないね、さいきん
93 :
仕様書無しさん:01/10/19 22:44
もーたさんは元気かなあ。
94を召喚しました。
<
[email protected]>
まだ鶴田氏が「どんな場合でも従え」発言の存在を否定してる
のが読み取れてないし。
否定の否定=全肯定ってのは元の否定が「全否定」だった場合限定
なのに。スコープが作法限定って見えてないから、箱は鶴田氏が
全否定したという事にしたがるわけで。
なのに今度は「動けばいいと言う議論ではないと認識してるか?」に
イエスと答えて「作法は絶対ではないと言っている」なんて後付けで
言い訳しやがる。見事な破綻っぷり。出鱈目だな。
「作法」のスコープ内部で全否定した事に対して
「作法」の外やら「作法」自体の是非やらは
別の議論だという事が分からんのだろうか。
あの手の人間てホント論理音痴だな。
または、論理音痴じゃなくて私怨を晴らすために論理を曲げるのが好きなのか。
98 :
仕様書無しさん:01/10/23 10:40
世の中の2/3ぐらいは論理音痴な人間じゃないの?
ふつうプログラマにはなれないと思うんだけど。
すまん、sage忘れた。
100 :
仕様書無しさん:01/10/24 11:46
切り番ゲット
なるほど、ハンガリアン記法と NULL 定義を
同レベルに見てるのか……使えんな。
#define NULL 1
の場合はどうよ?だって、ぷぷぷ
103 :
仕様書無しさん:01/10/24 15:28
だんだんニフティーのフォーラムなみに質が低下している
鶴田君曰く、
>> では、ご自由に...。私はこんなやり取りは、「くだらない」し「他の人に
>> 迷惑である」と思いますので、以後のフォローは止めましょう。
>
>御自分で「他人の迷惑である」と思っていることはしないでくださ
>い。大変迷惑です。止めてください。
いいけげんにすれ。
まぁだ箱がグズグズとなにか言ってるよ。
本当は鶴田氏に「全ての場合について NULL を 0 替わりに
使うなんてけしからん!」とか言ってもらえれば、きっと
箱は天にも昇る気持ちになれたんだろうけどね。残念だったね。
「そこ(作法レベルの話の外)までは言わない」と鶴田氏が宣言した時点で
とっとと撤退すりゃー良かったのによ。箱の「全ての場合について駄目」
と言わせるおびき出し策は失敗したって事なんだからさ。
最初っから malloc-free 議論の逆をやりたいがために無茶
言ってるのが見え見えなんだよな。
106 :
仕様書無しさん:01/11/02 16:45
箱も箱なら、まわりもまわりのようなage
だれか、Cancelとrmgroup攻撃やってくれ!!