这段程序怎么释放内存,求高手

这段程序如何释放内存,急!!!求高手我写了一段成需,其中M, N均为变量,如下代码:double** D new double*[M

这段程序如何释放内存,急!!!求高手
我写了一段成需,其中M, N均为变量,如下代码:
double** D = new double*[M]();
for (int i = 0; i != M; ++i)
{
D[i] = new double[N]();
}
开辟了一个二维数组;
我用delete [] D;能否释放整个二维数组资源???
恳求帮助,感激不尽!!!

[解决办法]
不行,new和delete要对应,也要写个循环来删除
[解决办法]
for (int i = 0; <M; ++i)
{
 delete [M]D[i];
}
[解决办法]
for (int i = 0; <M; ++i)
{
 delete[] D[i];
}
[解决办法]
+++

探讨

for (int i = 0; <M; ++i)
{
 delete[] D[i];
}

[解决办法]
探讨

new函数常用么,好像一直学的是malloc和calloc

[解决办法]
探讨

for (int i = 0; <M; ++i)
{
 delete[] D[i];
}