$M

Определяет параметры распределения памяти.

Синтаксис:
{$M размер_стека, размер_кучи}


Тип: Глобальная

Название на английском языке: Memory Allocation Sizes

Значение по умолчанию: {$M размер_стека, размер кучи}(Windows}
{$M размер_стека} (Защищенный режим DOS)
{$M размер_стека, начало_кучи, конец_кучи} (Реальный режим DOS)

Команда меню:  Options|Compiler|Memory sizes

Описание:

Директива $M определяет параметры распределения памяти для приложения или библиотеки. Параметр "размер_стека" должен быть целым числом в диапазоне от 1024 до 65520, что определяет размер сегмента стека.

Для реального режима DOS, параметры "начало_кучи" и "конец_кучи" определяют минимальный и максимальный размеры кучи, соответственно. Параметр "начало_кучи" должен быть в диапазоне от 0 до 655360, а параметр "конец_кучи" должен быть в диапазоне от "начало_кучи" до 655360.

Для Windows, параметр "размер_кучи" определяет размер локальной области кучи в сегменте данных. Параметр "размер_кучи" должен быть целым числом в диапазоне от 0 до 65520.

ВНИМАНИЕ: Директива $M не дает эффекта, когда используется в модуле. Параметр "размер_стека" игнорируется в библиотеке (библиотека всегда использует стек приложения, которое ее вызывает).