終了直前以外でfree不要と言うバカいるの?2人目

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
前スレ http://toro.2ch.net/test/read.cgi/tech/1352812333

これまでのまとめ

free必須バカの主張
・将来、別の使い方されるかもしれないからfreeすべし。
・メモリチェックツールの検査結果がクリーンでないと検査が通らないから、
 必死で書く。

free必須バカの言動
・線形リストの解放処理を簡潔に書いてみろというお題に挑戦し、ことごとく討死。
・末尾再帰を知らずに、末尾再帰で書かれた解放処理に対し「それ何個まで解放可能か?」と
 いうクイズを出す。
 それは末尾再帰だとネタバレされた後は自演という事にして精神の安定を保つ。
・ダブルポインタという用語を好んで使う。ポインタへのポインタの事らしい。この用語を使っ
 ているC言語解説書籍は一冊だけあるらしい。インド人が書いた書籍で詳細不明。
・自分が使いこなせない言語は欠陥言語と認定する。
2デフォルトの名無しさん:2013/01/31(木) 07:49:41.01
爆笑ログ
free必須バカが末尾再帰を知らずに「それ何個まで解放可能?」というクイズを出す。
http://toro.2ch.net/test/read.cgi/tech/1352812333/876

> From: [874] デフォルトの名無しさん <>
> Date: 2013/01/29(火) 12:37:44.50
>
> バカがうるさいので書き直してやるよ。www
> void free_l(struct l * restrict p) {
> struct l *next = p->next;
> free(p);
> if (next)
> free_l(next);
> }
>
> バカのいいがかりなんて所詮この程度の事。 バカには意味わからないだろうけどな。www

> From: [876] デフォルトの名無しさん <sage>
> Date: 2013/01/29(火) 12:58:33.48
>
> ここでwwwさんに問題です
> 天才には簡単な問題ですので必ず逃げないで答えてください
>
> スタックサイズが8MBのとき、このfree_l関数で解放可能な連結リストは
> 最大何個連結可能でしょうか?
>
> アーキテクチャは好きに選んでいいですよ
3デフォルトの名無しさん:2013/01/31(木) 08:07:41.80
1乙

「main 以外」なんだからねっ!
不毛な議論しちゃダメ、絶対。

ところで、exit 適用時も議論対象外になった事に、お気付きですか?
4デフォルトの名無しさん:2013/01/31(木) 10:23:10.54
「main以外」抜いたここは別スレだろ
5デフォルトの名無しさん:2013/01/31(木) 11:48:34.30
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
6デフォルトの名無しさん:2013/01/31(木) 21:32:21.52
2か
くさお必死メーター上がりまくりage
7デフォルトの名無しさん:2013/01/31(木) 22:22:06.87
fjって、いまでもよめますか?
8デフォルトの名無しさん:2013/01/31(木) 22:57:40.45
>>8
やあ、前スレ>>876のおバカさん。www
こっちのスレも前スレのように盛り上げてくれ。wwww

ネタ投下

free必須バカに質問
> ・メモリチェックツールの検査結果がクリーンでないと検査が通らないから、
>  必死で書く。
テスト網羅率が100%じゃないとメモリチェックツールの検査結果がクリーンという事に
何の意味もないと思うんだが、テスト網羅率が100%ってどうやって達成するんだい? www
9デフォルトの名無しさん:2013/01/31(木) 23:00:17.05
うわ、前スレでアンカー間違えたバカからかったのに自分でやっちまった。 www
10デフォルトの名無しさん:2013/01/31(木) 23:19:57.78
正常系と異常系の区別がつかないのは健在だな
11デフォルトの名無しさん:2013/01/31(木) 23:22:36.04
void召還プログラム
12デフォルトの名無しさん:2013/02/01(金) 00:56:44.98
ぷぷぷっ、正常系に限ってもテスト網羅率100%に出来るの? wwwww
そんなスーパーエンジニアがこんな場末のクソスレになんの用? wwwww

んじゃ、free必須バカにもう一つ問題。wwww
これはメモリリーク? www
それとも異常系で例外? wwwww

void on_exit(void)
{
extern char **environ;
char prog[32];
char *argv[2] = { "-exit", NULL };
sprintf(prog, "/proc/%d/exe", getpid());
execve(prog, argv, environ);
}

int main(int argc, char **argv)
{
char *p;
if (argc > 0 && strcmp(argv[0], "-exit"))
return 0;
atexit(on_exit);
p = malloc(1000);

return 0;
}
13デフォルトの名無しさん:2013/02/01(金) 03:19:46.00
>>12
> if (argc > 0 && strcmp(argv[0], "-exit"))
> return 0;

意味が分からない。

argcが0かマイナスになることがあるんだっけ?
strcmpは同じ場合に0を返すんだよね?
argv[0]はコマンド名になので"-exit"との比較に何の意味が?
このプログラムの実行ファイルとかシンボリックリンクが
-exitだったら延々execveするのか?
正常系だとするとちょっとしたマルウェア?
14デフォルトの名無しさん:2013/02/01(金) 03:24:54.50
いや、違うか。
execveで、"/proc/%d/exe"になるから次で終わるんだな
15デフォルトの名無しさん:2013/02/01(金) 07:26:52.79
む、バグだ。wwwww

void on_exit(void)
{
extern char **environ;
char prog[32];
char *argv[2] = { "-exit", NULL };
sprintf(prog, "/proc/%d/exe", getpid());
execve(prog, argv, environ);
}

int main(int argc, char **argv)
{
char *p;
if (argc > 0 && strcmp(argv[0], "-exit") == 0)
return 0;
atexit(on_exit);
p = malloc(1000);

return 0;
}
16デフォルトの名無しさん:2013/02/01(金) 09:12:45.43
やっぱり議論の視点が違うな。
対応するfreeを書けってのはつまり、「これはリークするかしないか?」
なんてクイズみたいなコードを書くのは避けろってことだ。
17デフォルトの名無しさん:2013/02/01(金) 14:08:48.68
書くべき理由が薄弱だから、freeを書くべき基準もあいまいで、
「それは異常系だから書かなくていい」とか言い出す始末。
だから、クイズ。
1813,14:2013/02/01(金) 14:43:58.47
クイズというか、いよいよマルウェアになったね
ただのバカなのか悪意があるのか知らないけど
こんな人間とまともに議論しようとする方が無茶だった
19デフォルトの名無しさん:2013/02/01(金) 16:51:32.93
マルウエアの定義知ってる? 異常系が使えなくなったらこんどはマルウエア。wwww
20デフォルトの名無しさん:2013/02/01(金) 17:12:40.00
出た定義厨
21デフォルトの名無しさん:2013/02/02(土) 10:03:01.92
「まるうえあ」は余りに間抜けだと思うの。
22デフォルトの名無しさん:2013/02/02(土) 10:23:23.28
おまえがな
23デフォルトの名無しさん:2013/02/02(土) 12:50:12.59
ハードウエア、ソフトウエア…極めつけは「ソストウエア」w
24デフォルトの名無しさん:2013/02/04(月) 08:04:43.72
>>21,23
草男はいくら偉そうなことを言ってても
こういうところで素性がバレてしまうんだよな
で、恥ずかしくなってここからは逃走
25デフォルトの名無しさん:2013/02/04(月) 08:31:57.73
free必須バカは全部踏みつぶしてきた。全部敗走したぞ。 wwww
のこってるのは煽る事しか能がないお前だけだ。 バカ以下のゴミ虫 www

http://toro.2ch.net/test/read.cgi/tech/1359549517/121
> From: [121] デフォルトの名無しさん <sage>
> Date: 2013/02/03(日) 18:15:54.29
>
> execveで呼ばれたときにargv[0]は"/proc/???/exe"みたいなのなるだろ、つってんだよ

> From: [132] デフォルトの名無しさん <sage>
> Date: 2013/02/03(日) 18:48:17.85
>
> execveでargv[0]を引数にして動作を振り分けるなんというキチガイな
> 実装を、有名なOSSの実装で1つでも出せるなら認めてやろう。
26デフォルトの名無しさん:2013/02/04(月) 10:19:41.48
自分がゴミということに気付かないゴミ↑
27デフォルトの名無しさん:2013/02/04(月) 12:06:32.22
↑ そりゃ悔しいだろうな。 でもお前のバカ脳が招いた結果。 wwww

http://toro.2ch.net/test/read.cgi/tech/1359549517/121
> From: [121] デフォルトの名無しさん <sage>
> Date: 2013/02/03(日) 18:15:54.29
>
> execveで呼ばれたときにargv[0]は"/proc/???/exe"みたいなのなるだろ、つってんだよ

> From: [132] デフォルトの名無しさん <sage>
> Date: 2013/02/03(日) 18:48:17.85
>
> execveでargv[0]を引数にして動作を振り分けるなんというキチガイな
> 実装を、有名なOSSの実装で1つでも出せるなら認めてやろう。
28デフォルトの名無しさん:2013/02/04(月) 21:26:38.95
くさおって一日中ネットしてるみたいだけど
職とかないの?
確かにビジネス会話とかはできなさそうだけど
29デフォルトの名無しさん:2013/02/04(月) 22:55:25.83
↑ 悔しそうだな。 でもお前のバカ脳が招いた結果。 wwww

http://toro.2ch.net/test/read.cgi/tech/1359549517/121
> From: [121] デフォルトの名無しさん <sage>
> Date: 2013/02/03(日) 18:15:54.29
>
> execveで呼ばれたときにargv[0]は"/proc/???/exe"みたいなのなるだろ、つってんだよ

> From: [132] デフォルトの名無しさん <sage>
> Date: 2013/02/03(日) 18:48:17.85
>
> execveでargv[0]を引数にして動作を振り分けるなんというキチガイな
> 実装を、有名なOSSの実装で1つでも出せるなら認めてやろう。
30デフォルトの名無しさん:2013/02/05(火) 09:03:30.17
完全に壊れたレコードだな
31デフォルトの名無しさん:2013/02/05(火) 10:33:43.19
統失の特徴だから仕方ない
32デフォルトの名無しさん:2013/02/05(火) 20:03:04.75
↑ 自分の醜態を貼られるのはいやか? バカ wwww

http://toro.2ch.net/test/read.cgi/tech/1359549517/121
> From: [121] デフォルトの名無しさん <sage>
> Date: 2013/02/03(日) 18:15:54.29
>
> execveで呼ばれたときにargv[0]は"/proc/???/exe"みたいなのなるだろ、つってんだよ

> From: [132] デフォルトの名無しさん <sage>
> Date: 2013/02/03(日) 18:48:17.85
>
> execveでargv[0]を引数にして動作を振り分けるなんというキチガイな
> 実装を、有名なOSSの実装で1つでも出せるなら認めてやろう。
33デフォルトの名無しさん:2013/02/09(土) 22:14:28.04
>>1
ま、メモリはOSから借りるものだからね
free(返済)なんて必要ないよな

現実の借金だって、踏み倒し続けて死ねばすべてチャラだし
34デフォルトの名無しさん:2013/02/10(日) 07:45:24.61
最近ちょっと話題になっている OOM Killer を忘れてやしませんか?
35デフォルトの名無しさん:2013/02/10(日) 10:47:18.72
free必須バカはOOM Killerで殺される時も必死でfreeするのか。大変だな。www
36デフォルトの名無しさん:2013/02/10(日) 11:11:40.75
いい加減にしろ!人が死んでんねんで
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12101532002
37デフォルトの名無しさん:2013/02/10(日) 11:41:23.70
スラドで沈みかけてるトピをドヤ顔ではられても。
38デフォルトの名無しさん:2013/02/10(日) 14:52:53.26
v8のjavascriptのGabageCollectionは
実際にメモリが足りなくなるまでは発動されないよ
process.exit(0);で終了するとGCされないまま終了するwww
39デフォルトの名無しさん:2013/02/10(日) 19:27:24.21
そもそもガベコレが頻繁に行われたからと言って、
メモリの断片化が解消されるとは限らないからな。
どうせあとで確保出来なくなるなら何もしてないのと一緒。
free するだけ時間の無駄。
40デフォルトの名無しさん:2013/02/10(日) 19:36:20.13
よっぽどfreeにトラウマがあるんだろうな
41デフォルトの名無しさん:2013/02/10(日) 20:48:50.60
底辺PGは無用なfreeを山ほど書いて成果を水増しする。
42デフォルトの名無しさん:2013/02/10(日) 22:04:55.36
free(0) をたくさん書けば成果水増しできる環境とは、羨ましすぎる (w
43デフォルトの名無しさん:2013/02/10(日) 22:08:51.21
free必須バカの「どんな環境にもっていかれるかわからないからfreeする」
という教義によりfree(0)は許されていない。
44デフォルトの名無しさん:2013/02/11(月) 09:50:01.63
あせってんねfree不要派
45デフォルトの名無しさん:2013/02/11(月) 13:35:50.52
free(0)って型エラー引っかからんの?
free((void *)0)とかせんでいいの?

手元にgcc動く機械ないし、規格書読むのめんどいんで
だれか教えて(実際の実装と規格の面から)
46デフォルトの名無しさん:2013/02/11(月) 13:50:58.14
ポインタが必要な場所での0はNULLとして扱われる 規格に書いてある
可変長引数でNULLの代わりに0を使うことは出来ない GNU関係では注意としてマニュアルに載っている
多くの環境でNULLは((void*)0)と定義されている stddef.hでもよめ
47デフォルトの名無しさん:2013/02/11(月) 13:53:37.34
>>44
具体的に「freeを書いたら○○の弊害がある」とかの主張ならともかく、
書かなくても良い場面を血眼で探して「省略した俺カッケー」だもんな。
そりゃすぐ破綻するわw
48デフォルトの名無しさん:2013/02/11(月) 14:36:10.37
>>46
単に0になってる環境もあるし、それは規格の上でも正しい。
49デフォルトの名無しさん:2013/02/11(月) 15:50:06.46
可変長引数関数は引数型を指定できないので、0と書くとintと解釈される。
これはsizeof(int) != sizeof(void*)な環境では問題になる。
50 ◆QZaw55cn4c :2013/02/11(月) 20:30:30.35
そうそう、だから C-FAQ にも (void *)0 とかキャストしろ、って書かれてるんだよね。
キャストなんてそれ以外には早々使う場面はない。
51 ◆QZaw55cn4c :2013/02/11(月) 20:33:43.26
>>50
お前のへなちょこ二分木ライブラリpush()/pop()を使うとキャストまみれになるんだが?
52デフォルトの名無しさん:2013/02/11(月) 22:13:56.40
>>51
君が自他共に認めるへなちょこだってことは、よくわかったw
53 ◆QZaw55cn4c :2013/02/12(火) 07:44:17.04
>>52
荒らしに餌をやるな
君よばわりされたことで舞い上がったらどうする?
54デフォルトの名無しさん:2013/02/13(水) 23:10:57.03
なんだこのスレ
まだやってたのかこの論争

いいぞもっとやれ
55デフォルトの名無しさん:2013/03/31(日) 08:54:32.18
実行中free必要、終了時free必要←普通の意見
実行中free必要、終了時free不要←横着だがOS/ランタイムによっては真な意見、または、変人を名乗る闇プログラマの意見
実行中free不要、終了時free必要←アルゴリズム考える力がないバカ、または、自前でメモリ管理する変人の意見、または、変人を名乗る闇プログラマの意見
実行中free不要、終了時free不要←横着な馬鹿の意見、または、OS/ランタイムに依存した横着な変人の意見、または、変人を名乗る闇プログラマの意見

バカと闇プログラマ(すーぱーはかー)は似て非なる存在だから喧嘩売った前スレ>>1は乙としか言いようが無い

>>2
末尾再帰のループ変換は機械的に適応可能な最適化だけど、必ず適応される保証なんて無かったような
gcc(c99+O2/c99/O2/none)とcl(VS2010@restrict無効)とtccで念のためやってみたけど、
Winは普通にクラッシュするしBSDもarg_ptr見る分にはきっちり再帰が積み上がってる
「使っても問題ない書き方」とは間違っても言えない・・・
56デフォルトの名無しさん:2013/03/31(日) 09:04:15.33
>>55
malloc不要も入れて〜
57デフォルトの名無しさん:2013/04/06(土) 17:03:48.60
OS/ランタイムに依存とか言い出すとfreeしても問題が無くなる訳ではないなどと
58デフォルトの名無しさん:2013/06/17(月) 17:49:01.74
>>55
MISRAの教義ではmallocするなだな
59デフォルトの名無しさん
末尾再帰が最適化されるとは限らない