Seite 1 von 1

Zeiger-Variable in Prozedur verändern

Verfasst: 06.12.2013 02:33
von wb2k
Hallo zusammen,

ich will in einer Unteroutine einen String verändern, den ich als Zeiger übergebe.
Das hat früher prima funktioniert, aber mit der aktuellen PureBasic-Version heißt
es "Native Typen können nicht mit Zeigern verwendet werden"

Aber wie soll ich sonst einen Zeiger übergeben?

Danke,
Bine

Code: Alles auswählen

Procedure bla(*Dir.s)
  *Dir + "456"
EndProcedure

var.s = "123"
bla(@var)

Debug var

Re: Zeiger-Variable in Prozedur verändern

Verfasst: 06.12.2013 08:15
von es_91
so ...

Code: Alles auswählen

Procedure bla(*Dir)
  PokeS(*Dir + Len(PeekS(*Dir)), "456")
EndProcedure

var.s = "123"
bla(@var)

Debug var

Re: Zeiger-Variable in Prozedur verändern

Verfasst: 06.12.2013 13:35
von STARGÅTE
Nein nein nein, bitte nicht so!

Der Speicher hinter der 123 ist nicht reserviert, und du handelst dir damit eine riesen Fehlerquelle ein.
Wenn du den Purifier einschaltest, meckert er auch!

Bitte so:

Code: Alles auswählen


Procedure bla(*Dir.String)
  *Dir\s + "456"
EndProcedure

Define var.String\s = "123"
bla(@var)

Debug var\s