int *p; p = (int*)malloc(sizeof(int)); free(p);
问题是 free 后,p 指针还存在吗?
free
p
如果存在,那么 p 是指向 NULL 吗?或者是野指针?
NULL
指向原来的地址,但是那个地址所代表的内存已经被释放,不能再使用了,这就是野指针。
free前后指针没有改变
这是未定义行为,由编译器的实现来决定,所以老老实实的写p=NULL;
1 回答3.3k 阅读
1.1k 阅读
1 回答1.8k 阅读✓ 已解决
3 回答3.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答3.8k 阅读✓ 已解决
1 回答2.4k 阅读
指向原来的地址,但是那个地址所代表的内存已经被释放,不能再使用了,这就是野指针。