Seite 1 von 1

Zeiger auf Wert in Structure

Verfasst: 18.05.2008 11:47
von kajott
Hallo,

die Übergabe eines Zeigers auf eine Structure an eine Procedure habe ich schon hinbekommen und auch das ändern von werten in der Structure per

*zeigeradresse\wert = 1250

aber die direkte Ansprache einer Adresse in einer Structure geht nicht! Geht das überhaupt?

Folgendes Beispiel funktioniert nicht

Code: Alles auswählen

Structure playerinfos
    dateiname.s
    name.s
    wert.f
EndStructure


Declare dateneingabe(*stradresse)


Dim spieler.playerinfos(5)


*adresse = @spieler(1)\wert

dateneingabe(*adresse)


Debug spieler(1)\wert

End



Procedure dateneingabe(*stradresse)

*stradresse = 1250

EndProcedure

Oder mach ich was falsch?
Für Antworten im voraus herzlichen Dank!

Verfasst: 18.05.2008 12:42
von STARGÅTE
doch geht, aber du musst in den Speicher hineinschreiben und nicht die Position verändern:

Code: Alles auswählen

Structure playerinfos 
    dateiname.s 
    name.s 
    wert.f 
EndStructure 


Declare dateneingabe(*stradresse) 


Dim spieler.playerinfos(5) 


*adresse = @spieler(1)\wert 

dateneingabe(*adresse) 


Debug spieler(1)\wert 

End 



Procedure dateneingabe(*stradresse) 

PokeF(*stradresse, 1250)

EndProcedure
PokeF() natürlich nur bei Strukturfeldern mit Floats, sonst halt die anderen Sorten

Altanativ würde auch das gehen:

Code: Alles auswählen

Procedure dateneingabe(*stradresse.FLOAT) 
*stradresse\f = 1250
EndProcedure
Bei anderen Typen dann halt LONG und \l usw.