如何定义并使用多级指针?
在c++中,当用new创建动态数组时,首先定义指针,但改如何定义多级指针?比如三级的。寻求例子讲解。谢谢。
例子:
int ***p;//三级指针
p = new int** [3];//p就只理解成指针,不要管它是几级的
for (int i = 0; i != 3; ++i)
{
*(p + i) = new int* [2];//*(p + i)它的值也是一个地址,其本质和指针是一样的,你也只要理解成指针就行
for (int n = 0; n != 2; ++n)
{
*(*(p + i) + n) = new int [3];//*(*(p + i) + n)同上,你理解下为什么不是写成*(p + i + n)
}
}
释放部分
for (i = 0; i != 3; ++i)
{
for (n = 0; n != 2; ++n)
{
delete [] *(*(p + i) + n);
}
delete [] *(p + i);
}
delete [] p;//释放部分你可以给记成后申请的空间先释放
记住一点吧,看下解引用后的内容是不是还是一个地址,不要被几级几级指针这个概念给弄糊涂了。