你能在堆上声明一个指针吗?

jke*_*eys 11 c++ heap-memory dynamic-memory-allocation

这是在C++中在堆上创建变量的方法:

T *ptr = new T;
Run Code Online (Sandbox Code Playgroud)

ptr显然是指向新T的指针.我的问题是,你能做到这一点:

T *ptr = new T*;
Run Code Online (Sandbox Code Playgroud)

这似乎可能导致一些非常非常危险的代码.有谁知道这是否可行/如何正确使用它?

Ara*_*raK 35

int** ppint = new int*;
*ppint = new int;

delete *ppint;
delete ppint;
Run Code Online (Sandbox Code Playgroud)


Tam*_*lei 7

new T* 返回指向T的指针.因此声明不正确,它应该是:

T** ptr = new T*;
Run Code Online (Sandbox Code Playgroud)

它将驻留在堆上.