#include <stdio.h>
#include <stdlib.h>
int * create(){
int * p = (int *)malloc(sizeof(int)*10);
return p;
}
void delete(int * p ){
if(p == NULL){
return ;
}
free(p);
p = NULL;
}
int main(){
int * p ;
p = create();
delete(p);
return 0;
}
这个代码中,我用create函数在堆中开辟了一块堆空间,返回内存地址,在main中使用指针接收了,并且使用了,使用完毕之后,我要释放这块内存,调用了delete函数,释放了堆空间地址,并将指针置为NULL;此时的main中指针p还是指向堆空间的内存地址,这个时候还需不需要把main中的指针置为NULL呢?