Absturz
-
Hallo.
machwas(char* Speicher) { ... Speicher = new char[Anzahl]; //Wird der Speicher hier angefordert, krachts unten ... } funk() { char* Speicher; //Speicher = new char[ANZAHL]; würde der Speicher hier angefordert, klappts unten machwas(Speicher); andere_Funktion(Speicher);//Hier, in dieser Funktion, wird lesend auf Speicher zugegriffen, dabei krachts delete[] Speicher; }Ist es legal, ein noch nicht initialisiertes Feld (char* Speicher) einer Funktion (machwas) zu übergeben, die das Feld mit new anlegt? Ich weiß, dass man Felder in der Funktion anlegen soll, in der sie auch gelöscht werden, aber da geht es nicht anders.
Danke.
-
Der Parameter der Funktion ist eine Kopie der übergebenen Variablen, d.h. die Zuweisung wirkt sich überhaupt nicht auf die Variable im Hauptprogramm aus. Wenn du etwas anderes brauchst, mußt du die Variable als Referenz (char*& Speicher) oder Zeiger (char** Speicher - dereferenzieren nicht vergessen) entgegennehmen.
-
Danke.
Du bist es.