Освобождение динамического массива при EOutOfMemory
От: BJk  
Дата: 14.05.05 09:45
Оценка:
Delphi 6, WinXP
Создаю динамический двухмерный массив размер которого превышает размер доступной памяти.
Получаю ошибку о нехватке памяти, пытаюсь освободить массив, как результат память не освобождается.
Как освободить память занимаемую массивом?

Ниже приведенный код и его вариации не работают.

Секции finally и except отрабатываются.
Функции Finalize(matrix) и SetLength(matrix,0) прекрасно работают на небольших массивах, но в данном случае память не освобождается.


var
matrix: array of array of integer;

procedure CreateMatrix;
try
  SetLength(matrix,100000,100000);
finally // or except
  Finalize(matrix); // or SetLength(matrix,0);
end;
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.