考虑c代码:
void mycode() { MyType* p = malloc(sizeof(MyType)); /* set the values for p and do some stuff with it */ cleanup(p); } void cleanup(MyType* pointer) { free(pointer); pointer = NULL; }
我错了,认为清理后(p);被调用,p的内容现在应该是NULL吗?会清理(MyType *指针)是否正确释放内存分配?
我正在编码我的大学作业,并发现调试器仍然显示指针,以便我有一个内存地址而不是0x0(或NULL).
我在C中发现内存管理非常复杂(我希望不只是我).有什么可以照亮发生的事情吗?