Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

C++: Frage zu Zeigern

Yves3 / 9 Antworten / Flachansicht Nickles

Hallo

Wie kann ich so etwas:

int* pStructure = new int[1];

.. während der Laufzeit noch vergrössern, ohne einen vollkommen neuen Speicherbereich zu reservieren?
Einfach so, dass die vorhandenen Daten so bleiben wie sie sind und das Array noch etwas mehr Platz hat.
Ich möchte das nach Möglichkeit ohne std::vector machen.

Schon mal Danke!

bei Antwort benachrichtigen
Yves3 Nachtrag zu: „Danke, so werde ich das machen.“
Optionen

Heute wollte ich diesen Code noch in einer Funktion kapseln.
Warum erhalte ich dort beim Aufruf von delete[] immer einen Debug Assertion Fehler? Wenn ich den Code direkt in die Main-Datei kopiere, klapp's!

// Utilities.cpp

void CUtilities::ResizeArray(int* p_iArray, int iNewSize, int iOldSize)
{
int* NewArray = new int[iNewSize];

for(int i=0;i NewArray[i]=p_iArray[i];

delete[] p_iArray;
p_iArray = NewArray;
}

// Testdatei Main.cpp

#include

bei Antwort benachrichtigen