- 1 名前:デフォルトの名無しさん [2008/12/05(金) 16:26:49 ]
- amarok
- 91 名前:デフォルトの名無しさん [2008/12/28(日) 06:46:29 ]
- mallocってどういう仕組みになってるの?
連続した物理アドレスじゃないのってプロセス側からはどうやっても判別不可能なの?
- 92 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 07:24:12 ]
- 「Is not A not B ?」って聞かれるとイラッっとくるのは俺だけ?
ゲンコツ食らわしたい
- 93 名前:デフォルトの名無しさん [2008/12/28(日) 08:30:46 ]
- 英語通気取りですかw
- 94 名前:デフォルトの名無しさん [2008/12/28(日) 09:31:47 ]
- >>91
そんなこと言う人いるんだww
- 95 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 09:36:59 ]
- >>94
そんなレスしかできないんだww
- 96 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 10:20:29 ]
- てか >>91 の質問がいまいちよく解らんのだが
>mallocってどういう仕組みになってるの? ソース嫁。 >連続した物理アドレスじゃない かどうかはどうでもよくて >プロセス側からはどうやっても判別不可能なの? Cの標準ライブラリでは提供されてないが OSのAPI呼び出しで提供されてるかも知れない。環境次第。
- 97 名前:デフォルトの名無しさん [2008/12/28(日) 10:23:59 ]
- >>96
代表的な環境であるwindowsとmacではどうなっていますか?
- 98 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 10:29:24 ]
- >>97
Mac は知らんが、Win には int _CrtIsValidHeapPointer(void *) がある。 但し _DEBUG 付きでビルドしたときのみ。 まあ、C ってのは「ヒープに限らず リソースは自分で管理しろ」ってスタンスだからなあ。
- 99 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 10:59:24 ]
- >_CrtIsValidHeapPointer
>指定されたポインタがローカル ヒープにあることを検査します (デバッグ バージョンだけ)。 これは連続性は全く関係なさそうだけどw ’物理的に’連続したものが欲しい時は結局ドライバ回りのコードに頼るしかなさそうだね。
- 100 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 11:07:55 ]
- そもそも連続した物理メモリなんてハードからまなきゃ必要なかろう。
- 101 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 11:12:29 ]
- >>96
Macのどこが代表的なんだ?
- 102 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 00:00:37 ]
- いっぱんむけ商用OSとしてじゃまいか
- 103 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:37:11 ]
- libgstreamer
streamtuner
- 104 名前:デフォルトの名無しさん [2009/01/03(土) 04:13:11 ]
- freeに渡すのは 識別子 ではない(名言)
- 105 名前:デフォルトの名無しさん [2009/01/03(土) 04:35:13 ]
- pc11.2ch.net/test/read.cgi/tech/1229639514/689
free()に渡すのは識別子ではなくポインタの値で、
- 106 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 13:05:17 ]
- つまり、free()が受け取るのはポインタの値なんですね、わかります。
- 107 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 13:25:38 ]
- tcmalloc
- 108 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 14:02:59 ]
- 識別子渡さなきゃいけないとなると
リンク時にシンボルのstripできないじゃないか。
- 109 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 22:58:50 ]
- なんであんなにぶったたかれてるのかまったくわからん
- 110 名前:デフォルトの名無しさん [2009/05/29(金) 22:06:41 ]
- あ
- 111 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 21:03:15 ]
- な
- 112 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:53:00 ]
- る
- 113 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 18:52:24 ]
- ほ
- 114 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 02:54:03 ]
- |
- 115 名前:デフォルトの名無しさん [2009/06/09(火) 17:26:42 ]
- ど
- 116 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 07:24:48 ]
- ざ
- 117 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 13:22:57 ]
- く
- 118 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 15:36:24 ]
- れ
- 119 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:41:41 ]
- ろ
- 120 名前:デフォルトの名無しさん [2009/12/04(金) 07:44:50 ]
- あ
- 121 名前:デフォルトの名無しさん [2009/12/08(火) 22:11:00 ]
- int* p;
p = null; *p = 0xFF;
- 122 名前:デフォルトの名無しさん mailto:sage [2009/12/08(火) 23:54:06 ]
- 定期保守乙
- 123 名前:デフォルトの名無しさん [2009/12/23(水) 10:16:41 ]
- mallocひどいお・・・
- 124 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 15:01:15 ]
- Cでmallocの戻り値をキャストするのは素人。
- 125 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 15:24:45 ]
- C言語で書いたあるライブラリのあるソースがあるC++のコンパイラでコンパイルされる可能性を考慮してmalloc()の戻り値をキャストするのは玄人
当然のように条件コンパイルやextern "C"を使うのも玄人 malloc()の戻り値をキャストするなというのはド素人
- 126 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 15:26:55 ]
- キャストするとかどうでもいいし。
int* p;と書くかint *p;と書くかの違いくらいどうでもいい。
- 127 名前:デフォルトの名無しさん [2010/01/11(月) 10:12:27 ]
- 超良スレ
- 128 名前:デフォルトの名無しさん [2010/01/11(月) 11:27:22 ]
- さすがマロックだな
- 129 名前:デフォルトの名無しさん [2010/01/16(土) 20:54:36 ]
- マロックを使えばメモリは俺の物
- 130 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 20:55:53 ]
- newすればするほどメモリはお前のものだ
メモリがほしいならnewをしろ
- 131 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 04:26:39 ]
- NULLを返されたらどうすればいいんですか><
- 132 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 04:44:20 ]
- 死ねばいいとおもうよ。
- 133 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 06:23:20 ]
- abortなりassertなり
- 134 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 12:20:36 ]
- mallocやnewに失敗する状態の時は
どうせなにやってもその後まともに動作しないんだから アロケートのエラー取得なんてやらなくていいんだよ。
- 135 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 15:20:53 ]
- ということにしたいのですね?
- 136 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 00:13:38 ]
- まあエラーダイアログくらいは出したいよね気分的に
- 137 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 01:15:56 ]
- ダイアログ出そうとしてさらにどつぼにはまるくらいなら逝ってよし
- 138 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 10:59:05 ]
- ダイアログを出すのに必要なメモリが確保できない
- 139 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 14:46:32 ]
- 1ペタバイトとか取得要求して
malloc(1024*1024*1024*1024*1024) なんて与えてNULLが 帰ってきた時に、何もせずに終了ってのモナ 昔は「論外、ご冗談を。無視します」で許されたかもしれない が、今はそんな巨大なメモリ取得出来ませんって程度のメッセー ジは欲しいところ。
- 140 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 14:52:00 ]
- 確かに debug 中はそれでもいいかもしれないが release 時にそのままじゃいかんだろ
- 141 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 14:53:25 ]
- mallocでNULLが返ってくる状況では、何をしてもダメ
↑ 神話。 今やUNIXコンソールアプリとかでも、mallocはプロセス管理やシステムコール領域とは独立分離されているので、プロセスが本当に何も 出来なくなるクリティカルな状況よりずっと低いレベルでNULLが 返ってくるように設定されている。よってエラー処理ルーチンは 必要。
- 142 名前: ◆0uxK91AxII mailto:sage [2010/01/18(月) 18:08:23 ]
- ふつーえむあろっく。
>>132 秀逸杉る。
- 143 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 18:54:09 ]
- >>141
出来の悪い架空記憶を採用したOSでは p=malloc(1024*1024*1024*2)としても 平気で普通の値を返してくる。 ところが p[1024*1024*1024*2-1]='¥0' とした瞬間、ディスクがガシャガシャ動き出し サクサク動いていたマシンのマウスが殆ど 動かなくなったり、ちょっと昔の奴だと ブルースクリーンになってリセットボタン すら利かない状態になったりしたものだが... 今は仮想記憶だから大丈夫だよね。
- 144 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 03:26:53 ]
- >>136の自分レス補足だけど、Win32の場合、システムモーダルメッセージボックスを作成するときに
失敗する可能性あるからリソースから文字列取得するなよ、っていうのがリファレンスに載ってるから そういう危機的な状況でもMB_SYSTEMMODALを指定すれば頑張って表示してくれるんじゃないのか? と思ってるんだけど、実際そういうテストやったことないから正直よく分からん
- 145 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 15:14:12 ]
- よく訓練されたPGならエラーダイアログくらい一番最初に確保しておくよね(´・ω・`)
- 146 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 22:39:13 ]
- Windowsのアホなところはそんなことをしても無駄だということだ
- 147 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 19:52:35 ]
- 無駄無駄無駄、無駄な努力はしない
- 148 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 08:23:59 ]
- >>143
たった2GBでスワップとかどんな罰ゲームなんだよw と思っていた。 でも実際、Windows用のアーカイバーで間抜けのがあるらしく、2GBのtar.gzを メモリ上に展開しようとしてスワップ地獄に陥ってしまった。 なんでgnuzip展開とtar展開を全部オンメモリでやろうとするかね。
- 149 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 10:06:28 ]
- >>143
Mac OS Xがそうだったなぁ。 しかもswapを動的に確保するから、ディスクの空きが少ない状況でこれが起きると にっちもさっちもいかなくなった。
- 150 名前:デフォルトの名無しさん [2010/04/22(木) 05:17:19 ]
- 宇宙海賊キャプテンmalloc
|

|