struct S {
int i;
int * p;
};
void main()
{
S s;
int * p = &s.i;
p[0] = 4;
p[1] = 3;
s.p = p;
s.p[1] = 1;
s.p[0] = 2;
}
问程序会在哪一行死掉。
解释:
void main()
{
S s;
int * p = &s.i;
p[0] = 4; //s.i =4
p[1] = 3; //s.p =3;
s.p = p; //s.p =&s.i
s.p[1] = 1; //s.p =1;
s.p[0] = 2; //试图访问(0x00000001)空间
}