这是正确的方法来分配堆栈和堆上的指针指针?如果不是,那么做一个正确的方法是什么?如何将指针分配给栈上的指针以及堆上的指针?
int a=7;
int* mrPointer=&a;
*mrPointer;
int** iptr; // iptr is on stack
*iptr=mrPointer; //not OK
int** iptr_h = new int*(); // iptr_h is on heap
*iptr_h=mrPointer;
由于垫的答案,现在我知道,这是把它放在栈正确的方法:
int** iptr; // iptr is on stack
iptr=&mrPointer;
,这在堆上:
int** iptr_h = new int*(); // iptr_h is on heap
*iptr_h=mrPointer;
在点'* IPTR = mrPointer;','iptr'是未初始化的,因此解引用它是未定义的行为。 – 2013-05-08 22:11:16
是什么让你认为有一种正确的方式来分配一个指针指向C++中的指针?你应该问正确的方式来完成某件事情(而这可能不是正确的做法),而不是用正确的方式来做到这一点。 – 2013-05-08 22:12:02
是的,我确实认为这是一个“XY问题” - 你认为Y是实现X的解决方案,所以你问Y怎么做。最好问一问“我如何实现X”。它可能不是一个双指针... – 2013-05-08 22:16:53