はりぼて日記
10月 12 (金曜日) 2007 | ||
21:23
|
28日目
|
|
28日目〜
P594 なになに? alloca? んーーーっと・・・・ 1000までは char flag[MAX], s[8] では、 charだから1バイト。それが配列として宣言されるから1000バイト。 1000バイトは1KB弱かぁ。だからOKと。 で、これが10000になっちゃうとええと・・・9.7KB。たしかに4KBを超えてるなぁ。 ちなみにちょっと実験。ほんとに4KBが境目かどうかやってみました。 えっと、4KBってことは1024*4だから、4096bだよね。MAXを4095にして実行! うほぉ! とまったぞ??? おっかしいなぁ・・・ 3500はOK・・・ 3900もOK・・・ 4000だとおかしくなるけど、なんかちょっと違うぞ?? 3950はOK・・・ 3960もOK・・・ 3970もOK・・・ 3980もOK・・・ 3990からおかしいな。 3985もダメ。 3984・・・おぉぉ! OKじゃん!! ふーむ・・・つーことは、3984が実質限界ということかぁ・・・ 配列は0からスタートするから個数としては3985。3985バイト・・・ これはなんの数値だろう?? あ” そうか! 同じく配列タイプがもう一個あるな。[8]だから 9個。足し算すると3994。3994バイト・・・。 スタックの限界値は4KBすなわち4096バイト。102バイト足りないけど、これはなにに使われてるんだろう??? まあいいや。とにかく、ほぼ4KBを境におかしくなるのは間違いないようだなぁ・・・ で!! とにかくCコンパイラがこの仕様というわけか。(ここまでは理解) ほんでもって、_allocaがなくてもいいようにmallocでメモリを確保しておいて、それをflagに当て込むと・・・。これも理解。 (つか、おもしろいね。このテクニック・・・(^^ ) で、_allocaを搭載すると。 ところで、スタックに領域を確保するのにESPの引き算って、これ、意味解る? スタックは積まれていくことを思い出すと理解できるよね?(^^ P601 さていよいよファイルAPIだ!! おぉぉっと! 予想に反してなんかこれ簡単だぞ!?? P609 コマンドラインの取得ね。・・・うーん。そんなに言うほどややこしくないと思うぞ? |
||
(1) 2 3 4 5 6 7 8 9 10 »  |
PopnupBlog V3 Denali created by Bluemoon inc. |