C++ 用四重指针分配数组

C++ 用四重指针分配数组,c++,C++,假设我有int****ptr;。我想在这个ptr的末尾分配一个动态的一维数组,所以当我输入***ptr[4]时,我会生成一个元素。请帮忙 p、 美国。 我并没有在我的实际应用程序中使用这段代码,它只是一个理解指针如何工作的智力练习。 我不能直接做***ptr=mallocsizeoffint*size\u of\u arr;正当因为这样我将无法产生任何元素,请注意***ptr[4]和***ptr[4]不是同一事物。索引运算符[4]优先于解引用运算符* int ****ptr; ptr = new

假设我有int****ptr;。我想在这个ptr的末尾分配一个动态的一维数组,所以当我输入***ptr[4]时,我会生成一个元素。请帮忙

p、 美国。 我并没有在我的实际应用程序中使用这段代码,它只是一个理解指针如何工作的智力练习。 我不能直接做***ptr=mallocsizeoffint*size\u of\u arr;正当因为这样我将无法产生任何元素,请注意***ptr[4]和***ptr[4]不是同一事物。索引运算符[4]优先于解引用运算符*

int ****ptr;
ptr = new int***();
*ptr = new int**();
**ptr = new int*();
***ptr = new int[size_of_arr];

//access (***ptr)[index]

delete[] ***ptr;
delete **ptr;
delete *ptr;
delete ptr;

这只是一个智力练习吗?如果您实际使用的是这样的代码,那么几乎肯定是走错了路。。你试过把你的代码插入括号吗?也许将流程分解为2-3行代码,也许使用一些局部辅助变量?没有生产级代码会使用这种结构。即使是从学术的角度提出这样的问题,它的问题也很糟糕。好吧,如果你不能回答我的问题,那不是因为它问得不好,而是因为你不知道,因为缺乏知识。你让我假设我有int****ptr;我是说真的非常感谢你。最后一个问题:int***后的parethesis用于初始化?如果我不用呢?看到了吗
int ****ptr;
ptr = new int***[5];
ptr[4] = new int**;
*ptr[4] = new int*;
**ptr[4] = new int;
***ptr[4] = 77;

delete **ptr[4];
delete *ptr[4];
delete ptr[4];
delete [] ptr;