Servus alle zusammen,
ich versuche gerade ein Array an eine sub zu übergeben und habe mich für varptr() entschieden. Aber irgendwie klappt das nicht richtig.
Das was dabei raus kommt ist folgendes:Code:$regfile = "m128def.dat" $crystal = 8000000 $sim Dim Tabelle(5) As Long Tabelle(1) = 100 Tabelle(2) = 200 Tabelle(3) = 300 Tabelle(4) = 400 Tabelle(5) = 500 Dim Addresse As Word Dim X As Byte Declare Sub Array_anzeigen(addr As Word) Aufruf: Addresse = Varptr(tabelle(1)) Print " adresse "; Print Addresse Addresse = Varptr(tabelle(2)) Print " adresse "; Print Addresse Addresse = Varptr(tabelle(3)) Print " adresse "; Print Addresse Addresse = Varptr(tabelle(4)) Print " adresse "; Print Addresse Addresse = Varptr(tabelle(5)) Print " adresse "; Print Addresse Dim I As Byte For I = 1 To 5 Print Tabelle(i) Next I Addresse = Varptr(tabelle(1)) Call Array_anzeigen(addresse) Do nop Loop End 'end program Sub Array_anzeigen(addr As Word) Local Y As Byte Local D As Byte Print " " Print "Von Suboutine aus :" For Y = 1 To 5 ' einfache Schleife D = Inp(addr) Print "addr "; Print Addr Print D Addr = Addr + 4 ' Inhalt des Arrays anzeigen. Print "tabelle "; Print Tabelle(y) Next Y End Sub
adresse 257
adresse 261
adresse 265
adresse 269
adresse 273
100
200
300
400
500
Von Suboutine aus :
addr 257
100
tabelle 100
addr 261
200
tabelle 200
addr 265
44
tabelle 300
addr 269
144
tabelle 400
addr 273
244
tabelle 500
kann mir jemand Verraten warum der 2 mal von den Richtigen Adresse liest, auch die richtigen Werte holt, aber dann die Falschen wert von den richtigen adressen?







Zitieren

Lesezeichen