C++学习过程中的一个问题
//释放原有空间
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指向地址也是不存在了!!!