C言語なら、俺に聞け! <13>
■ このスレッドは過去ログ倉庫に格納されています
0401デフォルトの名無しさん
NGNG例えば、
int n = 0x00000000;
short i = 0x1111, j = 0x2222;
char c = 0x33, d = 0x44;
とした場合、デバッガでメモリの確保のされかたを見てみると、
僕の環境では以下のようになっていました。
44 CC CC CC 33 CC CC CC 22 22 CC CC 11 11 CC CC 00 00 00 00
つまり、各変数に置き換えると、
DD xx xx xx CC xx xx xx JJ JJ xx xx II II xx xx NN NN NN NN
となっています。
すべて 4 バイトの倍数番目から確保されていて、
それぞれの変数の間にはすきまが空いています。
ここで思ったのですが、それぞれの変数間を詰めないのであれば、
メモリの消費をできるだけ抑えるために、
int の代わりに char や short を使ったりするのは意味がないんじゃないでしょうか?
結局、int 分の領域が用意されていることと同じになりませんか?
それとも、この変数間のすきまは何かにちゃんと有効利用されているんでしょうか?
どなたか教えてください。
(説明がややこしくなってすいません。)
■ このスレッドは過去ログ倉庫に格納されています