Przydzielanei pamięci

0

czym sie różnią te procki od siebie?? :

0

Czyżby forum powracało do łask? :)

New - Alokuje pamięć dla zmiennej o rozmiarze, na jaki wskazuje typ wskaźnika:

type PWsk = array [0..99] of Byte;
var
P: PWsk;
begin
New(P); //Zaalokowana pamięć ma 100 bajtów

GetMem - Alokuje pamięć o określonym rozmiarze (typ wskaźnika nie istotny. Może być nawet nieokreślony typ Pointer)

type PWsk = array [0..99] of Byte;
var
P: PWsk;
begin
GetMem(P, 200); //Zaalokowana pamięć ma 200 bajtów. Czyli mogłyby się tam znaleźć nawet 2 tablice

GlobalLock - Blokuje możliwość usunięcia z pamięci globalnego obiektu. Np jeden program zaalokuje pamięć i utworzy tam obiekt. To po GlobalLock drugi przez przypadek nie będzie mógł mu usunąć.

Initialize - Inicjalizuje (wypełnia zerami) pamięć zaalokowaną innymi funkcjami niż New (np. GetMem).

AllocMem - Alokuje blok pamięci o podanym rozmiarze i wypełnia zerami. Takie samo jak GetMem (tylko że inicjalizuje), tyle, że zwraca adres w pamięci, a nie przyporządkowuje od razu jakiemuś wskaźnikowi.

GetMem(P, 200);
Initialize(P);
2.
P := AllocMem(200); //Jeżeli nie będize przypisania to zaalokujemy pamięć, ale nie będziemymogli jej zwolnić

1 i 2 są równoważne

1 użytkowników online, w tym zalogowanych: 0, gości: 1