MyTinySTL
MyTinySTL copied to clipboard
不调用destory直接调用deallocate会造成内存泄漏吗
https://github.com/Alinshans/MyTinySTL/blob/8d88c6e41590e49fb91782711f78d8ab1d5e88e4/MyTinySTL/vector.h#L727
这里如果异常释放新内存,不调用destory直接调用deallocate感觉会造成内存泄漏
data_allocator::destory(newStart, newFinish); data_allocator::deallocate(newStart, newCapacity);
allocate() -> operator new 用来申请内存 construct() -> placement new 用来调用类 T 构造函数 T() 初始化对象 destroy() -> 调用类 T 析构函数 ~T() deallocate() -> operator delete 删除对象并释放对应内存
所以,不会内存泄漏:smile:
allocator::deallocate就是调用::operator delete(),并没有调用析构函数,如果类里new了对象的话,应该会内存泄露