首页 > 解决方案 > 如何在不使用向量的情况下调整动态指针数组的大小

问题描述

如果我想调整这个数组的大小:

int array[5];

我会这样做:

int* temp = new int [n];
...
array = temp;

但是,如果我有这个数组,我会怎么做?

int *array[5];

也许像这样?

int** temp = new int* [n];

标签: c++arrays

解决方案


不能调整固定数组的大小,句号。它的大小是恒定的,在编译时确定。

您也不能将 ' ed指针分配给new[]固定数组。

因此,您的两个示例都不起作用。

在您的第一个示例中,您将需要这个:

int* array = new int [5];

在你的第二个例子中,你需要这个:

int** array = new int* [5];

无论哪种方式,不要忘记delete[]array分配新的东西之前,例如:

int* array = new int [5];
...
int* temp = new int [n];
...
delete[] array;
array = temp;

推荐阅读