动态创建的字符串数组,怎样释放内存?解决方法

动态创建的字符串数组,怎样释放内存??

char   **Buffer=new   char*[1000];


用   delete   Buffer;   或   delete   []Buffer;   好像释放不了


------解决方案--------------------
delete []Buffer是对的,你的误区在于,你认为释放以后,
Buffer的值应当对应于一种“释放了的”状态

但世纪上,作为一个指针,它的表现方式只是一个整数(或类似的东西),
这个整数标明了变量或者数组在内存中的地址(物理地址或者虚拟地址),
在这个指向的地址的内容被释放以后,这片内存已经不能再去访问了,除非
另外一个指针指向了它。

但你的指针变量不是这样的,它还是保留这一个整数,对应于某个地址,
但你不用担心,指向的那块内存已经被正确释放了

好的风格是,在你delete []buf;以后,你写上buf=0,这样可以避免一些
不必要的混淆
------解决方案--------------------
你的delete只是把内存从你的程序还给系统堆管理函数。
任务监视器监视的是系统堆管理函数从os申请的内存。
这是2码事呀。

------解决方案--------------------
建议读一下林锐的那篇文章
------解决方案--------------------
char **Buffer=new char*[100];
for (int i = 0; i < 100; i++) {
delete Buffer[i];
}

delete Buffer;