0
我在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];
那麼將導致內存泄漏。但我相信這足以讓你開始。
創建一個新數組,複製數據,刪除舊數組。完成。不用擔心,一旦你離開學校,你就可以使用矢量和其他現實世界的工具。祝你好運。 ;) – syam
有很多如何做到這一點的例子?你有沒有嘗試過,沒有成功? – chris
http://stackoverflow.com/questions/2618526/problems-expanding-an-array-in-c?rq=1我試過這個,但它沒有工作,我一直在爲此奮鬥2現在小時,我仍然不知道爲什麼這不起作用。 – lejla