Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Dimensionsbestimmung dynamische Arrays (https://www.delphipraxis.net/86430-dimensionsbestimmung-dynamische-arrays.html)

Muehle 14. Feb 2007 08:37


Dimensionsbestimmung dynamische Arrays
 
Ich habe folgendes Problem mit der Bestimmung
der Groesse eines dynamischen Arrays während der Laufzeit :

thearr ist ein dynamisches Array. Jedoch liefert
sizeof() immer den Anfangswert = 4. Dasselbe gilt
übrigens für length().

Auch High() und Low() verhalten sich da nicht besser.
Wer weiss die Lösung ???

var thearr : Array of Integer;
itest:Integer;

begin
itest := sizeof(thearr);
setlength(thearr,100000);
itest := sizeof(thearr);
setlength(thearr,1000);
itest := sizeof(thearr);
setlength(thearr,90000);
itest := sizeof(thearr);
end

ste_ett 14. Feb 2007 08:59

Re: Dimensionsbestimmung dynamische Arrays
 
Ein Dynamischer Array ist nur ein Pointer und somit immer 4 Byte groß, egal wie viele Elmente darin enthalten sind.

Um die Größe des belegten Speichers zu erhalten, musst du die Anzahl der Elemente ("Length(Array)") mit der Größe des Typs eines einzelnen Elements ("sizeof(Integer)") multiplzieren. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 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