论坛: UNIX系统 标题: 请教一个linux中堆栈空间分配的问题  复制本贴地址    
作者: galer [babysgaler]    论坛用户   登录
我是个初学者,有一个很简单的问题,望那位仁兄赐教
一个程序
main()
{
   char buf[5];
}
然后用gdb调试,disass main
出现
push %ebp
movl  %esp , %ebp
sub    $ox18, %esp
请问这里的ox18应该是堆栈中为buf[5]分配的字节数吧
可是为什么是0x18呢,十进制不就是24了,字符型变量不是一个只占一个字节吗?
而且数组长度与分配的字节数规律如下:
数组长度     字节数
1                    0x4
2                    0x4
3                    0x18(这里比较奇怪)
4                    0x4
5                    0x18
6                    0x18
7                    0x18
8                    0x8(这里也比较奇怪)
9                    0x18
7                    0x18
。。。。。
16                  0x18
17                  0x28
17                  0x28
。。。。。
31                  0x28
32                  0x38
33                  0x38
不知道怎么回事
我装的时redhat 7.3
也许这个问题很傻,望告知

地主 发表时间: 11/23 09:54

论坛: UNIX系统

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号