Основы программирования на языке Turbo Pascal. Беляева И.В. - 242 стр.

UptoLike

Составители: 

242
for i:=1 to m do for i:=1 to m do
write(b^[i],' '); write(b[i],' ');
{Уничтожение массивов A и B –
освобождение занятой динамической
памяти}
Freemem(a,sizeof(integer)*n);
Freemem(b,sizeof(integer)*m);
end. end.
С первого взгляда в глаза бросается то, что решение с использованием
динамической памяти более длинное, а значит и более сложное. Более
длинная программа имеет больший размер исполняемого кода и
медленнее работает.
Получается, что использование динамической памяти приводит
только к ухудшению характеристик программы?
На самом деле это далеко не так.
Если проанализировать наш пример, то мы увидим, что в решении с
использованием динамической памяти, памяти под массивы A и B
выделяется РОВНО СТОЛЬКО, СКОЛЬКО НЕОБХОДИМО ДЛЯ
РАБОТЫ программы. В решении же без динамической памяти массивы A
и B в любом случае занимают по 200 байт каждый.
Таким образом можно сделать следующие выводы:
1. Использование динамической памяти в программах приводит к
уменьшению объема используемой памятиэто плюс.
2. Использование динамической памяти ведет к увеличению размера
программыэто минус.
3. Использование динамической памяти чревато множеством
сложнообнаруживаемых ошибок, связанных с работой с указателямиэто
минус.
4. Динамическую память необходимо использовать лишь в том
случае, когда это принесет явную выгоду, или же когда без нее просто
невозможно обойтись.