查找动态分配的阵列的大小

Sat*_*uru 0 c++ memory-management

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

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

int *array = new int[size]; //The Size is got by some logic
Run Code Online (Sandbox Code Playgroud)

现在从逻辑的长远来看,我需要解析这个数组,这样我需要得到/计算这个数组的大小.

我在这里很无能为力.请帮帮我.

提前致谢 :)

lit*_*adv 8

你需要将分配大小保存在一个单独的变量中,以便在完成之后知道它是什么new.

好的一面--C++为您提供了一个工具std::vector,可以在不使用new和保持大小的情况下为您解决问题(并且不受大小的限制).

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

vector<int> array(size);
Run Code Online (Sandbox Code Playgroud)

但通常你只是宣布

vector<int> array;
Run Code Online (Sandbox Code Playgroud)

然后继续填写它,并查询array.size()知道有多少项.