【发布时间】:2014-11-24 08:40:46
【问题描述】:
当我在 C++ 中编写代码以在空闲存储上分配内存时,我很好奇为该数据分配一个指针。例如:
当我像这样声明和初始化一个指针时,
unsigned short int * pPointer = new unsigned short int;
*pPointer = value;
delete pPointer;
是 4 个字节;使用 new 关键字在免费存储上分配,我可以为该地址分配一个值。但我的问题是,为什么我需要重新建立它的类型才能分配我的指针?
我想做:
无符号短整数 * pPointer = 新 pPointer
容易吗?
Javascript 会使用方法
newMethod = new Method()
在方法中访问成员数据。
但我知道如何使用指针。
pPointer = member data address and *pPointer = member data value
每次我尝试类似的东西,
int * pLocal = &pPointer
抛出错误。无法将 int** 转换为 int* 试图保留相同的内存空间,这就是为什么我不能将它的地址存储在另一个指针中,它只是保留的内存。
对不起,如果这令人困惑,但我只是想知道如何在空闲存储上分配内存并使用指针访问它已经具有 sizeof() 内存默认的类型需要在 new 关键字之后进行另一个类型声明?
【问题讨论】:
-
pPointer是一个int*(指向int的指针)。&pPointer是pPointer的地址,类型为int**(指向int的指针的指针),它与int*不同,这就是您收到该错误的原因。跨度> -
我理解的更清楚了。谢谢您的评论。