【发布时间】:2017-08-10 06:11:22
【问题描述】:
我对指针有点困惑。
如果我有这个,请说:
int size;
int bytes;
int numbers;
int *ptr;
ptr = new int[500];
我的问题是指针首先指向任何特定变量或仅指向整体 int 变量。如果我想要一个指针只指向数字变量怎么办。
如果你不介意,我有一个尾巴问题。我正在尝试为我的数组分配动态内存,这有效吗? :
int numbers[20];
int *ptr;
ptr = new int[size];
这会给我的数组一个堆内存吗?
我正在处理一个非常大的数组,如果不使用堆内存,就没有其他方法可以处理它。
P.S:此时我不能使用矢量。
【问题讨论】:
-
要理解指针,请考虑指针是对程序存在的实际 RAM 的引用。像 C 这样的经典强类型语言要求在运行时内存中的所有变量都是类型化的。因此,例如,可以为 32 位整数类型留出 4 字节的内存块。为了适当地分开读取、写入和使用,内容大小和类型必须在编译期间以静态方式直接识别。看起来您的分配不会使用堆内存,而是被视为普通数组。阅读有关 malloc() 的文档以了解动态分配。
标签: c++ arrays pointers heap-memory