在C++编程中,使用new分配的数组可用delete释放。这里释放的是动态分配的数组空间,而不是静态分配的数组空间,详细步骤:
1、例如,我们动态创建了一个一维int数组arr,现在需要将它释放。
2、这时只需要使用delete[]数组名即可。
3、注意,要释放数组所占的内存,[]不能少。否则,用delete则不能完全释放数组所占内存空间。
4、例如,我们为一个二维数组arr动态分配了内存空间。现在需要将它释放。
5、这时候,单单使用一句delete[]arr是不够的。
6、而是应该先释放为二维数组的每行分配的空间(即delete[]arr[i]),再释放为行指针分配的空间(即delete[]arr)。
7、经过这样两步,动态分配的二维数组空间才算彻底地释放。至于多维数组的释放,其本质和二维数组是相似的,可以参考二维数组的方法。下图为编译运行截图。可以看到,顺利执行,没有非法的内存访问,也没有报错。
memcpy(pRet, &m_code, 4);
memcpy(pRet + 5, &m_state, 4);// 使用了new 之外的内存,delete 出错。
以上就是关于c++中new和delete的用法全部的内容,包括:c++中new和delete的用法、c++下面的程序为什么delete时出错、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)