以下哪种方式是避免内存泄漏的正确方法?
//Option A
char* data = new char[4];
data = new char[5];
delete[] data;
//Option B
char* data = new char[4];
delete[] data;
data = new char[5];
delete[] data;
new
创建的东西。 - songyuanyaodelete
语句删除了第二次分配的内存。建议使用unique_ptr
或shared_ptr
来避免这个问题。 - mkaldelete
操作。这种需要是源于内存泄漏的影响。如果程序的生命周期很短,且不分配大量内存,并且操作系统可靠地清理内存,那么不必担心释放内存是可以接受的,事实上这样做还减少了因不适当释放而引入错误的风险。 - Kaz