下面這個程序main函數有內存洩漏,運行內存檢測工具valgrind可以看到(程序可以正常運行的),該如何釋放vector的內存資源呢?
#include
#include
using namespace std;
class yitem
{
public:
yitem(const char *s1):m_data(s1) { m_str = new string("abc"); }
~yitem(void) { delete m_str; }
string & get_data() { return m_data; }
private:
string m_data;
string *m_str = nullptr;
};
int main()
{
vector v1;
yitem a("A");
v1.push_back(a);
printf("ok\n");
return 0;
}
yitem的拷貝構造函數要實現,處理好指針。