ich hätte mal eine Frage zur Verwendung des Operators NEW für die Speicherreservierung. Mit dem Operator möchte ich z.B. acht String-Speicherstellen reservieren. Die Syntax sieht dann folgendermaßen aus:
psPtrToString:= NEW(STRING, 8).
Der Operator erzeugt ja dann zur Laufzeit ein Array des Typs STRING. Auf die einzelnen Array-Elemente möchte ich zugreifen und Werte hineinschreiben. Wie greift man darauf zu?
psPtrToString[i]:= sText scheint nicht zu funktionieren.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Was ich bei dir nicht Verstehe ist:
psPtrToString[i]
Was machst du mit [i]?
Willst du direkt auf die Chars zugreifen?
Grundsätzlich liegt dein Problem jedoch in der Tatsache (zumindest auf basis der spärlichen Infos die wir haben), darin das du den Pointer nutzt, aber eigentlich willst du ne dereferenzierung um die Speicheradresse zu erhalten.
Hier wird der Speicher allcoiert, und die Speicheradresse im Pointer gespeichert.
Später wird der Dereferenzierte Pointer (siehe ^ nach Pointername) mit einem String beschrieben.
in der nächsten Zeile wird (völlig sinnfrei in diesem Beispiel) der im neu allocierten Speicher hinterlegte WErte ebenfalls durch dereferenzierten Pointer der NEW-Anweisung in einen anderen Speicher zurückgegeben.
Als grundlagen Beispiel sollte dies eigentlich reichen.
Hallo Leute,
ich hätte mal eine Frage zur Verwendung des Operators NEW für die Speicherreservierung. Mit dem Operator möchte ich z.B. acht String-Speicherstellen reservieren. Die Syntax sieht dann folgendermaßen aus:
psPtrToString:= NEW(STRING, 8).
Der Operator erzeugt ja dann zur Laufzeit ein Array des Typs STRING. Auf die einzelnen Array-Elemente möchte ich zugreifen und Werte hineinschreiben. Wie greift man darauf zu?
psPtrToString[i]:= sText scheint nicht zu funktionieren.
Was ich bei dir nicht Verstehe ist:
psPtrToString[i]
Was machst du mit [i]?
Willst du direkt auf die Chars zugreifen?
Grundsätzlich liegt dein Problem jedoch in der Tatsache (zumindest auf basis der spärlichen Infos die wir haben), darin das du den Pointer nutzt, aber eigentlich willst du ne dereferenzierung um die Speicheradresse zu erhalten.
Hier wird der Speicher allcoiert, und die Speicheradresse im Pointer gespeichert.
Später wird der Dereferenzierte Pointer (siehe ^ nach Pointername) mit einem String beschrieben.
in der nächsten Zeile wird (völlig sinnfrei in diesem Beispiel) der im neu allocierten Speicher hinterlegte WErte ebenfalls durch dereferenzierten Pointer der NEW-Anweisung in einen anderen Speicher zurückgegeben.
Als grundlagen Beispiel sollte dies eigentlich reichen.
Auch sei in diesem Zuge auf:
https://content.helpme-codesys.com/de/CODESYS%20Development%20System/_cds_operator_new.html
Verwiesen
Danke für die Erläuterung, hat mir schon geholfen.