求教:用动态数组保存含指针成员变量的类,delete之前可否如此简化?
m_xModels 是一个保存类CXModel的动态数组,类CXModel中有指针成员变量
if(!m_xModels)
{
m_xModels = new CXModel[1];
}
else
{
CXModel *temp;
temp = new CXModel[m_numXModels+1];
memcpy(temp, m_xModels, sizeof(CXModel)*m_numXModels);
//ZeroMemory(m_xModels, sizeof(CXModel)*m_numXModels);
delete []m_xModels;
m_xModels = temp;
}
如果不加注释,会有错误,于是我想用ZeroMemory把delete前的类中的指针全部初始为0,这样delete就不会删除原有的内存空间,程序是跑起来了.看了很多帖子没有这么做的.难道是因为有内存泄露?再三思索,也觉得不会导致内存泄露.
求教:这么做可行吗?如果不可行请指点一下是什么原因