指针赋值问题

sud*_*nsu 3 c

当我在gcc编译器(www.codepad.org)中运行上述程序时,我得到输出为禁止系统调用:SYS_socketcall任何人都可以清楚为什么会出现此错误/输出?

int main() {
    int i=8;
    int *p=&i;
    printf("\n%d",*p);
    *++p=2;
    printf("\n%d",i);
    printf("\n%d",*p);
    printf("\n%d",*(&i+1));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我所观察到的是,在执行*++ p = 2后,我变得无法访问;为什么?

cas*_*nca 5

当你这样做时*p = &i,你p指向单个整数i.++p增量p指向"下一个"整数,但由于i不是数组,结果是未定义的.