主题:系统堆栈问题
#include <stdio.h>
#include <stdlib.h>
void fun(int a,int b,int c)
{
char buf1[5];
char buf2[10];
char *f;
f=buf1;
f+=12;
(*f)+=8;
}
void main()
{
int x;
x=0;
fun(1,2,3);
x=1;
printf("%d",x);
}
谁能解释一下这个程序的系统栈的使用过程,他是怎么绕过X的再赋值的?
#include <stdlib.h>
void fun(int a,int b,int c)
{
char buf1[5];
char buf2[10];
char *f;
f=buf1;
f+=12;
(*f)+=8;
}
void main()
{
int x;
x=0;
fun(1,2,3);
x=1;
printf("%d",x);
}
谁能解释一下这个程序的系统栈的使用过程,他是怎么绕过X的再赋值的?