あたりまえだけどintを連続で宣言すれば連続したところにメモリ確保される
Objective-CをやるにあたりC言語を駆け足で復習中
普段LLしかやらないので、直接メモリを触ってる感じが楽しい。
例題でこういうのがあった
#include <stdio.h> int main(void) { int i1,i2,i3; printf("%p,%p,%p\n", &i1,&i2,&i3); return 0; }
ってやると
toyoshi@ant:~/c$ ./a.out 0x7ffff32ac88c,0x7ffff32ac888,0x7ffff32ac884 toyoshi@ant:~/c$ ./a.out 0x7fffe8ce7b8c,0x7fffe8ce7b88,0x7fffe8ce7b84 toyoshi@ant:~/c$ ./a.out 0x7fff75ed653c,0x7fff75ed6538,0x7fff75ed6534 toyoshi@ant:~/c$ ./a.out 0x7fff52fa6fbc,0x7fff52fa6fb8,0x7fff52fa6fb4 toyoshi@ant:~/c$ ./a.out 0x7fff3c8ad4cc,0x7fff3c8ad4c8,0x7fff3c8ad4c4 toyoshi@ant:~/c$ ./a.out 0x7fffd99efe1c,0x7fffd99efe18,0x7fffd99efe14 toyoshi@ant:~/c$ ./a.out 0x7fff4b4669cc,0x7fff4b4669c8,0x7fff4b4669c4 toyoshi@ant:~/c$ ./a.out 0x7fff364096dc,0x7fff364096d8,0x7fff364096d4 toyoshi@ant:~/c$ ./a.out 0x7fffde10205c,0x7fffde102058,0x7fffde102054 toyoshi@ant:~/c$ ./a.out 0x7fff2fc39e7c,0x7fff2fc39e78,0x7fff2fc39e74
という感じで
なぜ宣言とは逆順にメモリが確保されるのか
なぜi3は必ず下一桁が4から始まるのか
というのが楽しい!だれか教えて
あとi1,i2,i3がキレイに4バイトずつずれるのも楽しい!