有人可以帮我解释一下为什么堆栈上的局部变量(sub $0x20,%esp)应该是 16 个字节(两个指向 char 的指针)分配给局部变量。这是函数及其 gdb 反汇编:
#include <stdio.h>
void main() {
char *name[2];
name[0] = "/bin/sh";
name[1] = NULL;
execve(name[0], name, NULL);
}
有人可以帮我解释一下为什么堆栈上的局部变量(sub $0x20,%esp)应该是 16 个字节(两个指向 char 的指针)分配给局部变量。这是函数及其 gdb 反汇编:
#include <stdio.h>
void main() {
char *name[2];
name[0] = "/bin/sh";
name[1] = NULL;
execve(name[0], name, NULL);
}