私はこのようなクラスを持っています:
#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が検出されました* ./a.out:free():無効なポインタ:...」エラーが発生します。
- 私はptr_vectorを使うべきだと思いますか?それらについて学ぶ勇気があるかどうかはわかりません。
前もって感謝します!