gpt4 book ai didi

c++ - 如何动态增加数组大小?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:31 43 4
gpt4 key购买 nike

我一直在尝试编写一个程序来添加 2 个不同大小的数组。但我想知道动态增加数组大小容量?例如:数组 [4] 然后将大小升级为 2 以生成数组 [6];?编辑:不使用 vector

我尝试创建一个新的 ptr 但它不起作用。我收到错误:只读变量不可分配。

int *ptr2 = new int[a2.size];


// new ptr2 copies ptr1
for (int i=0; i<(a1.size); i++) {
ptr2[i] = a1.ptr[i];
}


// we want ptr1 to point to ptr2
for (int i=0; i<(a2.size); i++) {
ptr2[i] += a2.ptr[i];
}

delete [] a1.ptr;

a1.ptr=ptr2;

最佳答案

你不能改变数组的大小,但你也不需要。您可以只分配一个更大的新数组,复制要保留的值,删除原始数组,然后更改成员变量以指向新数组。

  1. 分配一个新的[]数组并将其存储在一个临时指针中。

  2. 复制您要保留的先前值。

  3. 删除[]旧数组。

  4. 更改成员变量 ptrsize 以指向新数组并保存新大小。

关于c++ - 如何动态增加数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032222/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com