[C] Parameterübergabe mit Zeiger

PasswortGeheim

Grünschnabel
Hallo,
einer Funktion wird ein (int) Zeiger übergeben, die eine andere Funktion, die ebenfalls nach einem (int) Zeiger verlangt, aufruft. Allerdings tritt ein ungewünschtes Ergebnis ein, wenn der der erstgenannten Funktion durch den Zeiger übergebene Inhalt für den Funktionsaufruf der Anderen (Funktion) verändert werden soll. Funktionb erhält dann nämlich nicht den Wert dessen, worauf der Zeiger von Funktiona zeigt(+/- Unterschiede). Wie kann ich das beheben?

Code:
void Funktionb(int *i);
void Funktiona(int *i)
{
Funktionb(i+1);
};
mfg
 
du willst also in der funktiona den wert des übergebenen zeigers um 1 erhöhen .. also wenn der wert 1 is soll die funktionb 2 bekommen ?

weil wenn ja dann musst du den wert mittels deferenzierungsoperator zwischenspeichern dann um 1 erhöhen und einen neuen zeiger erstellen, der auf den geänderten wert zeigt. diesen zeiger übergibts du dann an die funktionb.

Code:
void Funktionb(int *i);
void Funktiona(int *i)
{
int j = *i;
j++;
int* k = &j;

Funktionb(k);
};
 
Zuletzt bearbeitet:
Zurück