Adott egy tömb TBitmapokból. A bitmapok létrehozása előtt és után a tömb ugyanannyi helyet foglal a memóriában (ha jól tudom ezek pointerek, szóval elvileg csak a címük van a tömbben)?
Mit értesz tömb alatt? Az sem mindegy.
Ha a C/C++ beépített adattípusára gondolsz, akkor persze, hogy egy pointertömb mérete állandó.
Meg az is nyilvánvaló, hogy ez semmit nem mondd a teljes adatszerkezeted méretéről.
Delphi alatt:
procedure Pelda;
var
Tomb : array [1..65536] of TBitmap;
i: longword;
begin
//A program ilyenkor is lefoglalja a TBitmapokhoz szükséges memóriát?
for i:=1 to 65536 do
Tomb[i]:=TBitmap.Create;
//Most több memóriát foglal-e a program?
end;
És ilyenkor mi a helyzet?
procedure Pelda2;
var t: array of TBitmap;
i: longword;
begin
//Most a t mérete elég kicsi kell hogy legyen
SetLength(t,65536);
//És most csak a pointerekhez szükséges memóriaterület lesz lefoglalva, vagy a SizeOf(TBitmap)*65536-nyi memória?
for i:=0 to 65535 do
t[i]:=TBitmap.Create;
//Itt már egyértelmű a lefogalt memória mérete :)
end;
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!