如果指针在多个地方使用,比较好的习惯是在delete后将对象指针赋值为NULL.
引用 10 楼 zhouzhangkui 的回复:调用 delete A 是将A指针所指向的内存中的资源释放掉 , 指针A仍然存在,这时A指针还是指向着该内存地址 所以加一句 A = NULL; 可以避免一些内存错误, 即使加了A = NULL; delete掉A后,B的值还是不变,指向先前A的地址空间。较好的解决办法是使用指针引用,而不是复制指针。
调用 delete A 是将A指针所指向的内存中的资源释放掉 , 指针A仍然存在,这时A指针还是指向着该内存地址 所以加一句 A = NULL; 可以避免一些内存错误,
TButton* A = new TButton(this); TButton*& B = A; delete A; A = NULL; if (B == NULL) { ShowMessage("Null"); } else { ShowMessage("Not Null"); }
13,873
社区成员
102,696
社区内容
加载中
试试用AI创作助手写篇文章吧