//释放原有空间
delete[] this->m_EmpArray;
//指针指向新的数组
this->m_EmpArray=newSpace;
//delete[] newSpace;
newSpace=NULL;

上面的情况是正确的,下面的情况是错误的:

//释放原有空间
delete[] this->m_EmpArray;
//指针指向新的数组
this->m_EmpArray=newSpace;
delete[] newSpace;
newSpace=NULL;

找了很久,修改很多出地方终于找到了。

//指针指向新的数组
this->m_EmpArray=newSpace;

上一句指令,是两个指针指向同一个地址空间。在此情况下,newSpace可以指向空的地方,但是不能清空。指向新的地方,原来的地址空间还在;一旦清空,现在this.m_EmpArray指向地址也是不存在了!!!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐