|
![]() | 作者: 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 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号