Hallo, kann ich einer Funktion einen Zeiger übergeben und die Adresse des Zeigers in eine weitere Funktion weiterreichen? Z.b. so
1 | void Funktion1( int *test){ |
2 | |
3 | *test=*test +1; |
4 | }
|
5 | |
6 | void Funktion2(int *i){ |
7 | |
8 | Funktion1(&i); |
9 | }
|
|
|
Forum: Compiler & IDEs Funktionen und PointerHallo, kann ich einer Funktion einen Zeiger übergeben und die Adresse des Zeigers in eine weitere Funktion weiterreichen? Z.b. so
Dave schrieb: > kann ich einer Funktion einen Zeiger übergeben und die Adresse des > Zeigers in eine weitere Funktion weiterreichen? klar geht das, aber nicht so wie du es gemacht hast. du hat aus einem Zeiger ein Zeiger auf einen Zeiger gemacht.
Darf ich davon ausgehen das ich dann auch Funktion1 anpassen muss?
Ich übergebe der Funktion2 eine Zeiger (also die Adresse des Speicherplatzes). Aus der möchte ich ja die Adresse der Variable i in eine weitere Funktion übergeben. Also wenn ich i an Funktion1 übergebe, steckt nicht der Wert von i, sondern die Adresse dahinter? Das heißt wenn ich in Funktion1 test hochzähle, dann muss ich trotzdem das * davormachen? Dave schrieb: > Darf ich davon ausgehen das ich dann auch Funktion1 anpassen muss? Nein. > void Funktion1( int test){ > *test = *test +1; > } test ist hier kein Pointer mehr. Dave schrieb: > Hallo, > > kann ich einer Funktion einen Zeiger übergeben und die Adresse des > Zeigers in eine weitere Funktion weiterreichen? Du meinst vermutlich den Wert des Zeigers, nicht seine Adresse. Dave schrieb: > Ich übergebe der Funktion2 eine Zeiger (also die Adresse des > Speicherplatzes). Aus der möchte ich ja die Adresse der Variable i in > eine weitere Funktion übergeben. Nicht die Adresse von i, sondern den Wert. > Also wenn ich i an Funktion1 übergebe, steckt nicht der Wert von i, > sondern die Adresse dahinter? i ist ein Zeiger, d.h. sein Wert ist eine Adresse, aber das ist deshalb nicht die Adresse von i. > Das heißt wenn ich in Funktion1 test hochzähle, dann muss ich trotzdem > das * davormachen? Ja, aber der Parameter muß trotzdem ein Zeiger bleiben. Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
|
|