also eine richtige Konstante liegt nicht im
RAM.
Stringkonstanten (AnsiString) werden vom Kompiler mitten im Programmcode (z.B. der Exe) abgelegt.
Auch das Array (wenn es als Konstante definiert ist) sollte da rumschwirren.
am Ende wird maximal der Pointer auf das Array im
RAM liegen (muß aber nicht ... hal jenachdem wie das Array im Programm angesprochen wird.
Und selbst wenn das Array im
RAM landet, dann sind da wiederum nur die Pointer zu den Strings/AnsiStrings enthalten, also das wären dann 4 Byte * StringAnzahl + 12 Byte zur Arraydefinition.
Ein Leerstring hat keine Daten und der Zeiger zu diesen steht auf NIL ... also ein Leerstring verbraucht immer nur maximal 4 Byte
ShortStrings liegen als Konstanten komplett im Programmcode versteckt und verbrauchen garkeinen
RAM.
Unter
Win32 und mit Delphi.
Achtung: typisierten Konstanten (dürfte Strings/Arrays aber im Normalfall nicht betreffen) werden von Delphi oftmals als konstante Variablen angelegt, würden also etwas peicher verbrauchen.