Пример фрагмента программы процедуры Dispose
Dispose (i); {возвращает в кучу 2 байта} Dispose (r); {возвращает в кучу 6 байт} Следует помнить, что повторное применение процедуры dispose к свободному указателю может привести к ошибке. Процедура dispose освобождает память, занятую динамической переменной. При этом значение указателя становится неопределенным. Любые действия над указателем в программе располагаются между процедурами new и dispose. При использовании динамически распределяемых переменных часто возникает общая проблема, называемая утечкой динамической памяти. Утечка памяти – это ситуация, когда пространство выделяется в динамически распределяемой памяти и затем теряется – по каким-то причинам ваш указатель не указывает больше на распределенную область, так что вы не можете освободить пространство. Общей причиной утечек памяти является переприсваивание динамических переменных без освобождения предыдущих. Простейшим случаем является следующий:
|