Zeiger Problem
-
Hallo,
ich hab das Problem das ich mit Zeigern noch nicht wirklich zu recht komme, bzw. ich den Sinn davon noch nicht ganz kapiert habe.
Ich soll eine Funktion schreiben, die mir das maximum und das minimum in einem array bestimmt.
Ohne Zeiger habe ich das so gelöst, dass ich zwei variablen habe, min und max. Denen gebe ich die Werte des ersten array elementes. Danach gehe ich das array durch, wenn ein element größer ist, dann wird der variablen überschrieben. Hat gut funktioniert.
ABer wenn ich jetzt eine Funktion habe, da kann ich ja nur einen Wert zurück geben, wie kann ich das mit zeigern machen, dass ich zwei Werte da speichere und die dann auslese. Das habe ich nicht ganz kapiert.
Vielleicht kann ja jemand helfen. DAnke
-
Du schreibst die Funktion so um, dass sie zusätzlich zu dem Zeiger auf dein Array auch noch zwei weitere Zeiger übergeben werden. Der eine Zeiger enstspricht dann dem Zeiger auf min, der andere dem Zeiger auf max. Nun kannst du innerhalb der Funktion diese Zeiger dereferenzieren und die entsprechenden Werte eintragen. Beim Aufruf der Funktion musst du dann die Adressen der Variablen an den entsprechenden Stellen angeben.
Natürlich empfiehlt es sich das Kapitel Zeiger in deinem Buch nochmal genau zu studieren. Zeiger müssen sitzen!
-
so sieht meine for schleife aus:
min = array[0]; max = array[0]; for(i=0;i<11;i++) { if(array[i]>max) { max=array[i]; max_idx=i; } if(array[i]<min) { min=array[i]; min_idx=i; } }
also brauch ich jetzt eine funktion
find_max_min(int *zahlen, int *max, int *min)
{}
aber wie mache ich das jetzt mit den zeigern, ich kapier das einfach ned
-
habs gelöst, danke für den anstoss, kapier langsam das ganze
-
seoman schrieb:
habs gelöst, danke für den anstoss, kapier langsam das ganze
Freut mich