一 数组指针的空间释放
int (*p)[3] = new int [4][3];
// ...
delete []p; //---1
delete[](*p); //---2
在释放这个二维数组时,应该使用1和2哪种方式呢?哪种对呢?
其实两种方法都是可以的,二维数组,p 和 *p 指向的位置相同的,都是指向第一个元素的地址是 &p[0][0]对于C/C++如何检测内存泄露,就是简单的库调用,这里不赘述,详见下面代码和参考文献,不过注意,检测结果的信息输出是在调试的情况下查看输出窗口(output)的
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include <stdio.h>
void main()
{
int (*p)[3] = new int [4][3];
//delete []p;
delete[](*p
_CrtDumpMemoryLeaks();//调试运行到该步,输出检测信息
}