私は動的割り当てを使用し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];
。スローすると、メモリ リークが発生します。しかし、これで始めるには十分だと思います。