Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#15

AW: Pointeradresse auslesen

  Alt 12. Sep 2019, 01:51
ok, ich habe da etwas falsch verstanden. Mit New weisst Du Eingabe schon etwas zu.

Schau mal auf http://docs.embarcadero.com/products...ystem_New.html

Da steht "The size of the allocated memory block corresponds to the size of the type that P points to.". Weisst du wieviel das ist? Sicher nicht genug um immer alles von deinem Eingabefeld zu speichern.

Was IntToStr(Integer(Eingabe)) zurück gibt kann ich dir gerade nicht sagen. Das könnte davon abhängen ob Du für 32-Bit oder 64-Bit compilierst und wie Integer implementiert ist. Unsere Umstellung auf 64-Bit ist schon länger her und ich habe das vergessen. Da ich nie einen Pointer auf einen Integer caste (weils einfach schlecht ist) brauche ich das auch nicht. (Und nachzuschauen bin ich zu faul)
@freimatz:
Ich hab auch anfänglich gedacht, dass das problematisch sein könnte.
Tatsächlich werden mit New(Eingabe) nur 4 Bytes (ich bin bei 32Bit) auf dem Heap reserviert.
Aber: mit
Code:
Eingabe^ := Edit1.Text;
wird nicht einfach die Zeichenkette zu Eingabe^ kopiert, sondern es wird ein neuer String erzeugt. An Eingabe^ steht dann die Adresse des neu erzeugten Strings also 4 Bytes.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat