[#1] AllocMem(), a AllocVec()
Witam!

Nasunęło mi się takie pytanie: czy jest jakikolwiek sens stosowania funkcji AllocMem(), skoro dostępna jest AllocVec(). Ta druga zachowuje się identycznie jak pierwsza, tyle że podczas zwalniania pamięci nie trzeba podawać rozmiaru bloku. Owszem, istnieje tu pewnie narzut w postaci konieczności zapamiętania gdzieś rozmiaru tego bloku przez AllovVec(). Jednak w przypadku znaczynych bloków nie ma to praktycznego znaczenia. Zaś w przypadku wielu małych bloków lepiej jest stosować AllocPooled().

Podsumowując: czy istnienie AllocMem() spowodowane jest jedynie koniecznością zachowania kompatybilności z wcześniejszymi systemami, czy też jest jakiś inny powód, którego się nie domyśliłem?

Pozdrawiam
[#2] Re: AllocMem(), a AllocVec()

@Kamul, post #1

Nie ma. AllocVec() to "wrapper" na AllocMem(), który oprócz alokowania pamięci nie robi nic ponad zapamiętywanie ilości pamięci którą trzeba potem zwolnić. Można nawet na upartego zwalniać pamięć którą alokuje AllocVec() za pomocą FreeMem().
To tylko kwestia kompatybilności wstecz, nic więcej.

AllocPooled() ma jeszcze jedną dodatkową zaletę: przy wychodzeniu z programu nie trzeba dealokować pamięci którą się alokowało wcześniej, wystarczy po prostu usunąć poola, system sam się zajmie zwolnieniem całej zaalokowanej wcześniej pamięci.

[#3] Re: AllocMem(), a AllocVec()

@MinisterQ, post #2

"nawet na upartego zwalniać pamięć którą alokuje AllocVec() za pomocą FreeMem()."

No kurde, nie spodziewalem sie, ze takie cos jestes w stanie napisac:) Nie mozna uzywajac FreeMem zwalniac pamieci alokowanej przez AllocVec! Nie wiesz ile sobie dorzucil AllocVec. Fe!



Ostatnia modyfikacja: 27.12.07 14:56
[#4] Re: AllocMem(), a AllocVec()

@MinisterQ, post #2

Można nawet na upartego zwalniać pamięć którą alokuje AllocVec() za pomocą FreeMem().

Ja bym jednak takich sztuczek nie polecał, zwłaszcza pod MOS-em czy AmigaOS 4.

[#5] Re: AllocMem(), a AllocVec()

@MinisterQ, post #2

No i po wątpliwościach. Dzięki! :)

[#6] Re: AllocMem(), a AllocVec()

@kiero, post #3

Napisałem "na upartego". Za starych czasów tak ludzie robili, wystarczy pooglądać stare źródła z aminetu...
Nie twierdzę że to normalne. ;)

[#7] Re: AllocMem(), a AllocVec()

@Kamul, post #5

Dzięki!

Nie "dzięki" tylko zaraz nam tu mów co tam takiego tworzysz, że zadajesz takie pytania. :) Przecież tak dla jaj nie pytasz o to. Sputnik jest zagrożony czy może wreszcie powstanie jakaś sensowna gra 3D na amiplatformy? :)

[#8] Re: AllocMem(), a AllocVec()

@MDW, post #7

:) Obawiam się, że ktoś kto ma tego typu wątpliwości raczej za
portowanie AbiWorda czy innego OpenOffice'a nie powinien się
zabierać. ;)

[#9] Re: AllocMem(), a AllocVec()

@Kamul, post #8

Hehehe. No niby tak. Ale jednak coś tam robisz i to jest bardzo pozytywne. :) To chyba końcówka roku tak na ludzi działa, bo mi też się zachciało i coś tam grzebię. :)

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem