Zeiger auf Wert in Structure

Anfängerfragen zum Programmieren mit PureBasic.
kajott
Beiträge: 35
Registriert: 21.11.2005 02:00

Zeiger auf Wert in Structure

Beitrag 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!
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten