Zeiger soll nach Funtkionsaufruf auf ein anderes Element zeigen
-
Hallo zusammen
ich möchte gerne den Zeiger so verändern das er nach dem Aufruf einer Funktion auf ein anderes Elements zeigt.
struct Elements{ int a; int b; struct myPointer; } void myFunction (struct Elements * pointer) { pointer = pointer->myPointer; } int main(){ struct Elements * pointer = (struct Elements *)malloc(sizeof(struct Elements)); // daraus baue ich eine liste etc. auf... myFunction(pointer); // jetzt möchte ich gerne das pointer auf pointer->myPointer zeigt }
Ich hab schon ein paar Sachen ausprobiert es aber nicht hin bekommen.
Hab mir das so in der Art vorgestellt://Funktionsaufruf die Adresse wird übergeben, damit kann man den Wert als das Objekt auf das gezeigt wird bearbeiten myFunction(&pointer); //wie weiter weiß ich nicht bzw ergab nur Compilerfehler
kann mir da jemand helfen?
-
void myFunction (struct Elements **pointer) { *pointer = (*pointer)->myPointer; }
denke so in der richtung sollte das klappen, du kannst aber auch schön das per return erledigen
struct Elements *myFunction (struct Elements *pointer) { return pointer->myPointer; }
lg lolo
-
ach ja das struct müsste so aussehen
struct Elements{ int a; int b; struct Elements *myPointer; }
-
Variante 1 hab ich gesucht, da ich die Variante 2 mit return nicht verwenden kann.
Perfekt! Vielen Dank für die schnelle Antwort.Edit:
noobLolo schrieb:
ach ja das struct müsste so aussehen
struct Elements{ int a; int b; struct Elements *myPointer; }
ja hab ich hier so schnell hingeklatscht und übersehen... danke