Ben*_*Ben 13 c++ pointers memory-leaks
char *pointer1;
char *pointer2;
pointer1 = new char[256];
pointer2 = pointer1;
delete [] pointer1;
Run Code Online (Sandbox Code Playgroud)
换句话说,我还必须这样做delete [] pointer2吗?
谢谢!
Nil*_*ert 17
不,那个代码很好,不会泄漏内存.
你只需要使用delete []一次,因为你只使用一个new来为内存分配一个区域,即使有两个指向同一个内存的指针.
一个简单的规则:你需要尽可能多delete的news.更好的是,使用智能指针或容器之类的东西来照顾它.
另一个小问题:pointer2一旦你打电话delete,就会变成一个"悬垂的指针" pointer1.
| 归档时间: |
|
| 查看次数: |
911 次 |
| 最近记录: |