65,210
社区成员
发帖
与我相关
我的任务
分享
struct SV
{
float x,y,z;
};
class SVHolder
{
SV* apV;
int nV;
};
SVHolder* pNewHolder = new SVHolder;
pNewHolder->apV = new SV[5];
// 省略为SV[5]的赋值操作代码
for( int i = 0; i < m_v.size(); ++i )
{
SVHolder* pTmpHolder = m_v.at(i);
delete[] pTmpHolder->apV;
apV = NULL;
delete pTmpHolder;
pTmpHolder = NULL;
}
m_v.clear();
#include "stdafx.h"
#include <vector>
#include <iostream>
using namespace std;
struct SV
{
float x,y,z;
};
class SVHolder
{
public:
SV* apV;
int nV;
};
int _tmain(int argc, _TCHAR* argv[])
{
vector<SVHolder*> v;
for(int i = 0; i < 5; i++)
{
SVHolder* pNewHolder = new SVHolder;
pNewHolder->apV = new SV[5];
v.push_back(pNewHolder);
}
for( int j = 0; j < 5; ++j )
{
SVHolder* pTmpHolder = v.at(j);
delete[] pTmpHolder->apV;
pTmpHolder->apV = NULL;
delete pTmpHolder;
pTmpHolder = NULL;
}
v.clear();
cin.get();
return 0;
}
这样虽然没错,但是建议类成员的析构最好还是在析构函数中完成