- FreeMode
- FreeMode
- Total
- IsSorted
- SortMode
- CreateElement
- Add
- Insert
- DetachCurrent
- DeleteCurrent
- Delete
- Clear
- IndexOf
- GetNodeAtIndex
- GetFirstNode
- GetPrevNode
- GetCurrentNode
- GetNextNode
- GetLastNode
- Sort
- MoveToIndex
- Exchange
- CompareList
- Search
- Save
- Load
- Type
FreeMode
Liste elemanlarının silinmesi sırasında kullanılacak bellek yönetim bayrağını ayarlar.
void FreeMode(
|
Parametreler
mode
[in] Bellek yönetim bayrağı için yeni değer.
Not
Bellek yönetimi bayrağının ayarlanması CList kullanımında önemli bir noktadır. Liste elemanları dinamik nesne işaretçileri olduğundan, listeden kaldırıldıklarında akıbetlerinin ne olacağını belirlemek oldukça önemlidir. Bayrak ayarlanmışsa, elemanın listeden kaldırılmasının ardından 'delete' operatörü ile eleman otomatik olarak silinecektir. Bayrak ayarlanmamışsa, silinen elemanın işaretçisinin hala program içerisinde bir yerlerde olduğu varsayılır ve daha sonra programdan kaldırılacaktır.
Kullanıcının bellek yönetim bayrağını sıfırlaması durumunda, program tamamlanmadan listenin kaldırılması gereklidir, aksi takdirde, 'new' operatörü kullanıldığında bellek boşaltılmamış elemanlarla dolacaktır. Büyük miktarlardaki veriler terminalin çökmesine hatta bozulmasına neden olabilir.
Kullanıcının bellek yönetim bayrağını sıfırlamaması durumunda ise başka bir "tehlike" doğacaktır. İşaretçilerin kullanılması durumunda liste elemanları yerel değişkenler içinde depolanacaktır. Bu durumda listenin kaldırılması kritik hataya yol açacak ve programı çökertecektir. Varsayılan olarak, bellek yönetim bayrağı ayarlıdır (yönetim mekanizması açık), yani belleğin boşaltılmasından liste sınıfı sorumludur.
Örnek:
//--- CList::FreeMode(bool) için bir örnek
|