我有一个看起来像这样的类:
#include <iostream>
#include <vector>
using namespace std;
class MyClass
{
vector<int*> V;
public:
MyClass();
MyClass(int n);
~MyClass();
};
MyClass::MyClass()
{
return;
}
MyClass::MyClass(int n)
{
int* T = new int[n];
for(int i=0; i<n; i++)
{
T[i]=i;
V.push_back(&(T[i]));
}
return;
}
MyClass::~MyClass()
{
for(int i =0; i<V.size(); i++)
delete V[i];
return;
}
int main()
{
MyClass C(5);
return 0;
}
- 我的析构函数有什么问题?执行此操作时出现“ * glibc detected * ./a.out: free(): invalid pointer:...”错误。
- 你认为我应该使用 ptr_vector 吗?我不知道我是否有勇气去了解这些。
提前致谢!