返回堆区地址
int *fun() { int *tmp=NULL; tmp=(int *)malloc(sizeof(int)); *tmp=100; return tmp; } int main() { int *p=NULL; p=fun(); printf("p= %d\n",*p);//ok //堆区空间,使用完毕,手动释放 if(p!=NULL) { free(p); p=NULL; } }值传递1
void fun(int *tmp) { *tmp = 100; } int main() { int *p=NULL; p=(int *)malloc(sizeof(int)); fun(p); printf("p= %d\n",*p);//ok,*p为100 return 0; }值传递2
void fun(int *temp) { tmp=(int*)malloc(sizeof(int)); *tmp=100; } int main() { int *p=NULL; fun(p); printf(" p= %d\n",*p); return 0; }