我想问,如果我有一个指向某个结构的指针,但是然后我 free(struct) 那么如果我取消引用该指针,它会指向 NULL 吗?如我可以检查,指针!= NULL 还是这是未定义的?
谢谢!
最佳答案
对指针调用 free() 不会更改指针值。它仍然会指向不再属于您的应用程序的同一内存。释放指针后,应立即将 NULL 分配给已释放的指针,以确保不会再次使用它。
void *p = malloc(10); // p points to allocated memory
free(p); // p still points to invalid memory
p = NULL; // good practice
关于c - C 中 free() 的确切输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874832/