c++ - 查找动态分配数组的大小

标签 c++ memory-management

一个简单的问题,虽然我无法在更快的时间内找到答案。

我正在通过“new”关键字使用动态分配来为数组分配内存块,如

int *array = new int[size]; //The Size is got by some logic

现在在逻辑的长期运行中,我需要解析这个数组,以便我需要获取/计算这个数组的大小。

我在这里很无知。请帮帮我。

提前致谢:)

最佳答案

您需要将分配大小保存在一个单独的变量中,以了解在您完成 new 后它是什么。

好的一面 - C++ 为您提供了一个名为 std::vector 的工具,它可以为您解决问题,而无需使用 new 并保持大小(并且不会被也受大小限制)。

因此,如果您需要预分配大小,您可以使用:

vector<int> array(size);

但通常你会声明

vector<int> array;

然后继续填充,查询array.size()就知道有多少项。

关于c++ - 查找动态分配数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6369598/

相关文章:

c++ - 如何捕捉 QSystemTrayIcon 的 MouseHover 事件?

c++ - 永久更改指针类型

objective-c - 内存管理,我应该保留吗?

c++ - 类成员是另一个类的对象

c++ - 优先级队列和结构

c++ - 检测动态分配的对象?

c - 了解指针的用途

objective-c - 在常量和非常量字符串之间交替时 NSString 的最佳分配

c++ - 使用 C++ 中的 "new"创建的指针进行内存管理

c# - 树阵列到站点地图