#include <stdio.h>
void initialize(int **);
void control(int **);
int main(void){
int *pointer;
printf("%p\n",pointer);
initialize(&pointer);
printf("%p\n",pointer);
control(&pointer);
return 0;
}
void initialize(int **point){
printf("%p\n",point);
*point = NULL;
printf("%p\n",point);
}
void control(int **point){
if(*point == NULL)
printf("hi");
else
printf("good bye");
}
上面的代码没有问题,但是当我这样更改时:
int **pointer;
printf("%p\n",pointer);
initialize(pointer);
printf("%p\n",pointer);
control(pointer);
它不能正常工作。我想知道为什么它不能与&pointer 一起使用。
答案 0 :(得分:-1)
我尝试了您的代码,当将null指针的指针在initialize()函数中分配为null时,它引起了细分错误,这应该是由null指针引起的。