- 论坛徽章:
- 0
|
添加一段代码,打印出调用b函数时的前32个字节
#include <stdio.h>
#include <stdlib.h>
void b(int i,int j)
{
int a,c;
a=2;
c=4;
printf("%p\n",&j);
printf("%p\n",&i);
printf("%p\n",&a);
printf("%p\n",&c);
int kk[5]={1,2,3,4,5};
printf("kk %p\n",kk);
char *m = (char *)(kk);
printf("-------\n" ;
int p;
for(p=0;p < 32;p++)
printf("%x ",m[p]);
printf("\n" ;
}
int main(int argc,char *argv[])
{
int i=0;
int j=1;
b(i,j);
return 0;
}
结果如下:
$ ./a.out
0x7fffc3ba1a38
0x7fffc3ba1a3c
0x7fffc3ba1a5c
0x7fffc3ba1a58
kk 0x7fffc3ba1a40
-------
1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 0 0 0 0 4 0 0 0 2 0 0 0
可以看到在变量c之后压入了4字节为0的东西,不知道这个东西是是什么。
|
|