Deprecated: Function set_magic_quotes_runtime() is deprecated in /DISK2/WWW/lokiware.info/mff/wakka.php on line 35 Matfiz : Dynamické Proměnné
Přihlášení:  Heslo:  
Matfiz: DynamickéProměnné ...
Hlavní Stránka | Seznam Stránek | Poslední Změny | Poslední Komentované | Uživatelé | Registrace |
Toto je stará verze stránky DynamickéProměnné z 2006-12-15 17:21:32..

Dynamické proměnné

Příklad

* SpojovýSeznam

Dynamická (de)alokace v Pascalu

New() & Dispose()


Chci dostat přiděleno místo v paměti (alokovat ho) a uložit si její adresu do paměti:
Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/lokiware.info/mff/formatters/highlight/pascal.php on line 5

var p: ^typ;
{...}
New(p);


Chci uvolnit (uvolnit pro další použití, dealokovat) přidělenou paměť:


Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/lokiware.info/mff/formatters/highlight/pascal.php on line 5

Dispose(p);


Pozor: Ukazatel teď ukazuje “kamsi”, musím do něj uložit nulový Ukazatel:


Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/lokiware.info/mff/formatters/highlight/pascal.php on line 5

p := NIL;

New() & Mark() & Release()

Mark(p) mi do p uloží vrchol haldy. Release(p) určí vrchol zásobníku na adresu p. Nevhodné kombinovat s Dispose() (je asi jasné proč).


GetMem() a FreeMem()

Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/lokiware.info/mff/formatters/highlight/pascal.php on line 5

GetMem(ukazatel, pocetBajtu);  { alokace }
FreeMem(ukazatel, pocetBajtu); { dealokace }


Typicky je pocetBajtu vyraz ve tvaru pocet * SizeOf(neco), abych alokoval pole o poctu pocet prvku typu stejneho jako neco.


 
Na stránce nejsou žádné soubory. [Zobrazit soubory (formulář)]
Na stránce nejsou žádné komentáře. [Zobrazit komentáře (formulář)]