这个程序为什么出错?

#include<malloc.h>#include<stdio.h>#include<stdlib.h>void init(int *p){
    p=(int *)malloc(sizeof(int));
}int main(){    int *p;
    init(p);
    *p=4;    printf("%d",*p);    return 0;
}


皈依舞
浏览 538回答 1
1回答

长风秋雁

因为init分配的p,不是传递过去的指针,而是一个复制的p,所以main中的p没有被分配到内存,你需要传递指针的地址过去。
打开App,查看更多内容
随时随地看视频慕课网APP