В данном примере иллюстрируются основные приемы при работе с кучей. Поскольку все функции, работающие с кучей, требуют в качестве параметра дескриптор кучи, то указанные функции легко могут быть объединены в класс. Ниже в примере в модуле WinHeap приводится реализация такого класса и простейшее его использование. В этом же модуле описаны некоторые константы и макросы, которые по непонятной причине не вошли в модуль Windows1). С другой стороны, в классе приведены только те функции для работы с кучей, которые реализованы как на платформе Windows NT/2000, так и на платформе Windows 9x/ME.
Поскольку Delphi предоставляет собственный достаточно эффективный менеджер памяти, то необходимы веские причины на использование кучи. Такими могут, например, быть желание избежать фрагментации памяти, а также довольно сложный механизм освобождение оъектом динамически выделенной им памяти.
В самом примере по мере ввода, строки сохраняются в виде односвязного списка, создаваемого в куче, а затем, после окончания ввода, введенные строки выводятся на экран и происходит уничтожение кучи.
Примеры использования кучи |
Прогулка по куче![]() |
© Mystic, 2002