我正在c++
使用structs
动态分配,我需要制作自动增加数组大小的函数:
structType * array=new structType[max];
而且我不能使用“向量”。有人知道该怎么做吗?
我正在c++
使用structs
动态分配,我需要制作自动增加数组大小的函数:
structType * array=new structType[max];
而且我不能使用“向量”。有人知道该怎么做吗?
根据我的评论,这是实现:
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];
抛出,那么您将泄漏内存。但我相信这足以让你开始。