Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FillChar mit dynamischen Char Array (https://www.delphipraxis.net/185185-fillchar-mit-dynamischen-char-array.html)

Popov 20. Mai 2015 19:26

FillChar mit dynamischen Char Array
 
Ich hab gerade einen Knoten im Kopf. Wieso klappt das eine und das andere nicht?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: array[0..9] of Char;
begin
  FillChar(s, SizeOf(s), Ord('A'));
  ShowMessage(s);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  s: array of Char;
begin
  SetLength(s, 10);
  FillChar(s, SizeOf(s), Ord('A')); //auch nicht mit dem Wert 10
  ShowMessage(String(s));
end;

DeddyH 20. Mai 2015 19:30

AW: FillChar mit dynamischen Char Array
 
Lass Dir doch in beiden Fällen mal den Rückgabewert von SizeOf ausgeben.

SMO 20. Mai 2015 19:39

AW: FillChar mit dynamischen Char Array
 
Zitat:

Zitat von Popov (Beitrag 1302370)
Ich hab gerade einen Knoten im Kopf. Wieso klappt das eine und das andere nicht?

Weil dynamische Array-Variablen genau wie String-Variablen nur Pointer/Referenzen auf den reservierten Speicherbereich sind.

Delphi-Quellcode:
// das funktioniert mit statischen und dynamischen Arrays,
// auch wenn es nicht besonders schön ist
FillChar(s[Low(s)], SizeOf(s[Low(s)]) * Length(s), 0);


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz