Ich hab da ein Problem mit new(). Unzwar möchte ich einen char-buffer generieren der sich jedesmal wenn die Funktion aufgerufen wird, vergrößert. Das heißt also: Wenn die Funktion das erste mal aufgerufen wird, wird besagter char-buffer auf 1024 Bytes (die Größe wird berechnet und in eine Variable vom Typ long geschrieben, als Beipiel nehme ich hier 1024) vergrößert:
wird die Funktion zum zweiten mal aufgerufen vergrößert sich der buffer auf 3072:
das ganze geht zunächst so weiter.
Windows gibt jetzt aber bevor es das zweite Mal Speicher für den Buffer reserviert (also der buffer von 1024 auf 3072 Bytes vergrößert werden soll) einen Fehler aus: "written" kann auf den Speicher 0x00000...nicht ausgeführt werden...
Ich hab leider keine Ahnung warum das passiert? Was genau geschieht denn da Speicherintern? Wie kann ich den Fehler beheben?
Gruß
cesupa
Code:
charbuffer=new char[1024];
//Anweisungen
delete[] charbuffer;
wird die Funktion zum zweiten mal aufgerufen vergrößert sich der buffer auf 3072:
Code:
charbuffer=new char[3072];
//Anweisungen
delete[] charbuffer;
das ganze geht zunächst so weiter.
Windows gibt jetzt aber bevor es das zweite Mal Speicher für den Buffer reserviert (also der buffer von 1024 auf 3072 Bytes vergrößert werden soll) einen Fehler aus: "written" kann auf den Speicher 0x00000...nicht ausgeführt werden...
Ich hab leider keine Ahnung warum das passiert? Was genau geschieht denn da Speicherintern? Wie kann ich den Fehler beheben?
Gruß
cesupa