p不是个二级指针吗,可以这样用吗?

//先开第一维空间
int *p = nullptr;
p = new int
[m];
for (int i = 0; i < m; ++i)
{
//再开第二维空间
p[i] = new int[n]; //p不是个二级指针吗,可以这样用吗?
}

for(int i = 0; i < m; ++i)

{
delete [] p[i];
}
delete [] p;


img


编辑代码发出来,直接贴代码星号显示不出来。

如果要声明成二维数组,需要2个星号
int **p 
p = new int*  [m];
...
p[i] = new int[n]; 



int **p = nullptr;
p = new int *[m];

格式不对。

下面这一段删除
for(int i = 0; i < m; ++i)

{
delete [] p[i];
}

这篇文章:关于指针*p,指针的指针**p,以及二维数组的理解 也许能够解决你的问题,你可以看下
你还可以看下c语言参考手册中的 c语言-指针