Funktionen und Pointer

Gast #3153524
Lesenswert?

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.
1
void Funktion2(int *i){
2

3
   Funktion1(i);
4
}
Gast #3153541
Lesenswert?

Darf ich davon ausgehen das ich dann auch Funktion1 anpassen muss?
1
void Funktion1( int test){
2
*test = *test +1;
3
}
4

5
void Funktion2(int *i){
6

7
   Funktion1(i);
8
}

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?
#3153709
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren