MyTinySTL icon indicating copy to clipboard operation
MyTinySTL copied to clipboard

vector& operator=(const vector& rhs);rhs的size大于当前对象的size并且小于等于当前的capacity时,会造成内存泄漏

Open CookLiuTest opened this issue 1 year ago • 1 comments

mystl::vector<int> vector(10);
mystl::vector<int> v(1);
*(int*)(v.begin() + 10) = 200;
v = vector;
std::cout << "v.capaty:" << v.capacity() << " v.size:" << v.size() << " "<< * (int*)(v.begin() + 10);//v的初始容量为16,但是经过赋值构造后,cap_指向了第10个元素的后面,导致后面6个元素内存没有被释放,内存泄露

CookLiuTest avatar Jan 25 '24 07:01 CookLiuTest

*(int*)(v.begin() + 10) = 200; 这行怎么看都是错的。

最好先提供一个正确的代码。

frederick-vs-ja avatar Feb 05 '24 08:02 frederick-vs-ja