![]() |
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 |
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 09:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz