假设我愿意
char *a;
a = new char[4];
现在,是否可以进一步扩展数组的大小?
假设我想将我放在 a[0]
中的任何值保留到 a[3]
但现在我想要更多空间给 a[4]
和 a[5]
等。这在 C++ 中可能吗?
起初我觉得也许我可以做:
char* a[10];
a[0] = new char[size];
每当需要更多空间时,我可以转到 a[1]
并分配更多空间。这是目前我能想到的唯一选择。
最佳答案
不幸的是,这在 C++ 中是不可能的。您必须分配一个新区域并将旧区域复制到新区域。
但是,C++ 具有其他功能,例如 std::vector
,可以减轻手动处理这些事情的需要。
关于c++ - 是否可以在运行时在堆上创建一个数组,然后在需要时分配更多空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15379903/