Hier noch mal Schritt für Schritt:
Kaffeetasse schrieb:
> char *fp1;
Ok, fp1 ist also ein Zeiger. Er enthält die Adresse eines char.
> fp1 = new char [255];
Hier erzeugst du dynamisch ein Array aus 255 chars und läßt fp1 auf den
Anfang zeigen. Du schreibst also die von new zurückgegebene Adresse in
fp1.
> fp1="zulaessig!\n";
Ups, was ist denn das? Hier überschreibst du die gerade nach fp1
geschriebene Adresse wieder durch eine andere, nämlich durch die der
Stringkonstante "zulaessig!\n". fp1 zeigt also nun auf eine andere
Speicherstelle. Das Ergebnis von new ist nun für immer verloren, da du
die Adresse nirgends mehr hast.
> delete[] fp1;
Hier übergibst du nun diese Adresse der Stringkonstante, die jetzt in
fp1 steht, an delete[]. Die hat nichts mehr mit der von new
zurückgegebenen Adresse zu tun, und deshalb kracht es.
> Beim Start bekomme ich die Fehlermeldung im Anhang. Kann mir jemand
> sagen wo mein Fehler bei der Verwendung von der "delete"-Funktion liegt?
delete ist keine Funktion, sondern ein Operator.
Und wie Dr.Sommer schon schreibt, tu dir einen Gefallen und nutze die
String-Klasse statt "rohe" Zeiger auf char. Diese sind sehr
fehleranfällig und unkomfortabel.