gpt4 book ai didi

c++ - 如何制作需要执行此操作的功能?

转载 作者:行者123 更新时间:2023-11-28 07:27:58 26 4
gpt4 key购买 nike

我在 c++ 中使用 structs 和动态分配,我需要制作自动增加数组大小的函数:

structType * array=new structType[max];

而且我不能使用“vector ”。有人知道怎么做吗?

最佳答案

根据我的评论,这里是实现:

void resizeArray(structType*& oldArray, size_t oldSize, size_t newSize) {
structType* newArray = new structType[newSize];
for (size_t i = 0; i < std::min(oldSize, newSize); ++i)
newArray[i] = oldArray[i];
delete[] oldArray;
oldArray = newArray;
}

structType* array = new structType[max];
resizeArray(array, max, max + 10);

请注意,上面的代码不是异常安全的:如果 newArray[i] = oldArray[i]; 抛出,那么您将泄漏内存。但我相信这足以让您入门。

关于c++ - 如何制作需要执行此操作的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18369534/

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