Hilfe bei Speicherallokierung bitte!
-
hi!
Ich muss ein Programm mit dynamischer Speicherverwaltung schreiben. Dabei habe ich
im Hauptprogramm einen Zeigerint *zeiger;
definiert. Dieser Zeiger wird dann an ein Unterprogramm
void calc(int *test)
übergeben:
calc(zeiger);
In diesem Unterprogramm wird dann der Zeiger test mit:
test = new int;
initialisiert bzw. der Speicher allokiert.
Das Problem: Im Unterprogramm wird dann ein Wert in die Adresse von test geschrieben. Nach Beendigung des Unterprogramms steht aber im Zeiger zeiger im Hauptprogramm noch die Adresse NULL.
Wie muss ich denn den Zeiger übergeben, damit er dann die richtige Adresse erhält?
Vielen Dank für eure Hilfe!
-
entweder du gibst den zeiger zurück
int * calc(int *test)
oder du übergibst eien zeiger auf einen zeiger
ich hoffe du verstehst was ich meine
mfg
-
einen Zeiger zurückgeben kann ich leider nicht, da diese Funktion noch mehrere Parameter hat, welche ebenfalls Zeiger sind, mit denen ich in etwa das selbe machen muss.
Einen Zeiger auf einen Zeiger wäre sowas oder?
void calc(int **test) calc(&zeiger); //funktionsaufruf
-
ja genau
mfg