我得到了一个包含以下声明的 header :
//The index of 1 is used to make sure this is an array.
MyObject objs[1];
但是,我需要在程序启动时动态调整这个数组的大小。我认为我应该将它声明为 MyObject *objs;,但我认为如果原始程序员以这种方式声明它,那是有原因的。
无论如何我可以动态调整它的大小吗?或者我应该将它更改为指针然后再 malloc() 吗?
我可以使用一些 new 关键字以某种方式做到这一点吗?
最佳答案
使用 STL vector :
#include <vector>
std::vector<MyObject> objs(size);
vector 是一个 dynamic array并且是 Standard Template Library 的一部分.它会随着您自动调整大小 push back对象放入数组中,可以像使用 []
operator 的普通 C 数组一样访问.此外,&objs[0]
保证指向内存中的连续序列——与 list 不同。 -- 如果容器不为空。
关于c++ - 我应该如何更改此声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/727762/