首页 > 解决方案 > 使用指针(new int[size])时,是否需要在代码前确定size?

问题描述

如果我有这样的代码:

int* array = new int[n];

的值n可以直接调整大小吗?

如果我有一个例子,这是允许的还是ArrSize需要在我开始示例之前定义为一个不能改变的设定值?

int* newArr = new int[ArrSize];
int j = 0;
for(int i = 0; i < Size; i++){
    if(arr[i] > 0){
        newArr[j] = arr[i];
        j++;
        ArrSize++;
    }
}
return newArr;

标签: c++

解决方案


n的值可以直接调整大小吗?

你可以做任何你喜欢做的事情n。但是,此类事情不会追溯更改之前执行的任何代码。这在命令式语言中永远不会发生。

如果您创建一个包含元素的数组n,则该数组的元素计数将n是创建数组时的值。事实上,每次使用n都会基于当时的价值n

您应该使用 avector<int>而不是显式数组来执行您要执行的操作


推荐阅读