PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Array als variable an Funktion



demmy
11.03.2012, 21:27
Hall zusammen,

ich hätte mal noch eine Frage zu den Arrays.
Und zwar möchte ich ein komplettes Array als Variable an eine Funktion übergeben. Und in der Funktion sollen alle Bytes des Arrays miteinander addiert werden.
ich habe das folgendermaßen versucht.




Declare Function berechnen(byval Datenbereich As Byte) As Byte

do

rückmeldung = berechnen(array(1))

loop


Function berechnen(byval Datenbereich As Byte) As Byte

For Index = 1 To 5
Summe = Summe + Datenbereich(index)
Next

berechnen = summe

End function



Also, ich bekomme aber für die Summe immer nur den wert des ersten Array-eintrages zurück gemeldet. Egal was ich in das Array bei den anderen Indexen eintrage. So als würde er die Schleife bei Index = 1 verlassen!? Wie kann das sein? Habe ich irgendwo einen Feher gemacht?

Gruß

MagicWSmoke
11.03.2012, 21:53
Du musst einen Zeiger auf das erste Element des Arrays übergeben, da Du ja auf das Originalarray zugreifen willst. Das geht mit ByRef, der Standardeinstellung für die Übergabe von Variablen an Sub's und Functions.
Wenn Du ByVal übergibst, dann erzeugst Du eine Kopie des ersten Elementes und liest dann bei Index 2 irgendwas anderes im Speicher.

demmy
11.03.2012, 22:31
Ahh ok vielen Dank!

Es funktioniert nun! :)