做一下小测验,熟悉一下过程帧的结构。
通过下面的代码,即可找到函数的返回地址:
#include <stdio.h>
int evil(int para) {
int var = 10;
printf("evil\n");
printf("address ¶ is:%p, has value:%p\n", ¶, (void*) *(¶) );
printf("address &var is:%p, has value:%p\n", &var, (void*) *(&var) );
printf("\n");
printf("address &var+1 is:%p, has value:%p\n", &var+1, (void*) *(&var+1) );
printf("address &var+2 is:%p, has value:%p\n", &var+2, (void*) *(&var+2) );
printf("address &var+3 is:%p, has value:%p\n", &var+3, (void*) *(&var+3) );
printf("address &var+4 is:%p, has value:%p\n", &var+4, (void*) *(&var+4) );
printf("address &var+5 is:%p, has value:%p\n", &var+5, (void*) *(&va