002
08.11.2005, 12:50 Uhr
ao
(Operator)
|
Der Pointer, der von new zurückgegeben wird, hat eine doppelte Funktion:
Für dich ist es die Anfangsadresse des Speicherbereichs, auf dem du arbeiten kannst.
Fürs Betriebssystem ist es eine Referenznummer, mit der der Speicherblock in der Speicherverwaltung identifiziert wird. Du musst beim delete[] genau die Referenznummer zurückgeben, die du beim new erhalten hast, damit das BS weiß, welchen Speicherblock du freigeben willst - du könntest ja ein komplexeres Programm geschrieben haben, das mit mehreren Blöcken zugleich hantiert.
Dein Programm gibt irgendeine Nummer zurück, mit der das BS nichts anfangen kann, weil es diese Nummer nicht vergeben hat. Daher die Exception.
CPP-Tags bedeutet: Wenn du Quelltext postest, sollst du ihn in Cpp-Tags einschließen, damit er bei uns als Sourcecode formatiert erscheint (in Monospace-Font und mit etwas Syntax-Highlighting). Ist besser zu lesen. So gehts:
Einfach vor den Anfang des Sourcecodes [ cpp ] und hinters Ende [ /cpp ] schreiben, aber nicht so wie ich es hier vorgemacht habe, sondern ohne die Leerzeichen zwischen den eckigen Klammern. Dann sieht es so aus wie hier:
C++: |
int main void(){ return 0; }
|
ao |