Новые книги

Эта книга о том, как примирять внутренние противоречия, разрешать конфликты между рациональным и эмоциональным мышлением и добиваться выдающихся преобразований в компаниях, обществе и личной жизни. Братья Хиз показывают, что перемены — не такая уж сложная штука, как мы привыкли думать. Чтобы добиться изменений легко и надолго, достаточно лишь понять, как работает наш мозг.

Ранее книга была издана под названием «Сердце перемен. Как добиваться изменений легко и надолго».
Каких-то полвека назад человек не мог себе даже представить, как далеко может шагнуть технологический прогресс. Сейчас никого не удивляет всемирная автоматизация – мы не можем себе представить жизнь без электроники и возможностей, которые она обеспечивает. Персональный компьютер стал неотъемлемой частью человека, обыденным инструментом, как в профессиональной деятельности, так и в повседневной жизни. Но у всего, в том числе и у прогресса, есть отрицательные стороны: влияние компьютеров на здоровье человека, минусы автоматизации труда, зависимость от машин, развитие интернет-мошенничеств, сбои в работе ЭВМ– данное издание поможет разобраться широкому кругу читателей в чем польза и вред компьютеризации.

Процедуры работы с динамической памятью

Процедуры работы с динамической памятью

Модуль System

Procedure Dispose(var P: Pointer);

Освобождает память, распределенную для динамической переменной.

После вызова Dispose значение P не определено. При включенной директиве {$I+}, вы можете использовать исключительные ситуации, чтобы обработать эту ошибку.

 

Procedure FreeMem(var P: Pointer [; Size: Integer]);

Освобождает память, выделенную динамической переменной данного размера.

P - переменная любого типа-указателя, предварительно созданная процедурой GetMem.

Size определяет размер динамической переменной в байтах. Для корректной работы этой процедуры, Size должно быть точно равно числу байтов, предварительно распределенных для этой переменной процедурой GetMem.

FreeMem уничтожает переменную P и возвращает память «куче». Если P не указывает на память в «куче», возникает ошибка времени выполнения.

После вызова FreeMem, значение P не определено, и происходит ошибка, если Вы впоследствии ссылаетесь на P^. Вы можете использовать исключительные ситуации, чтобы обработать эту ошибку.

 

Procedure GetMem(var P: Pointer; Size: Integer);

GetMem создает динамическую переменную определенного размера и помещает адрес блока в переменную Р.

P - переменная любого типа-указателя. Size - выражение, определяющее размер в байтах динамической переменной. Вы должны ссылаться на созданную переменную как P^.

 

Procedure New(var P: Pointer);

Создает новую динамическую переменную и помещает ее адрес в переменную Р. P - переменная любого типа-указателя. Размер распределенного блока памяти равен размеру типа, на который указывает P. Если памяти недостаточно, чтобы распределить динамическую переменную, возникает исключительная ситуация EOutOfMemory.

При завершении программы, все динамические переменные, созданные процедурами New или GetMem, должны быть уничтожены соответственно процедурами Dispose или FreeMem.