Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Как освободить память после SetLength   Найти похожие ветки 

 
яяяя   (2004-03-17 01:48) [0]

сабж.

SetLength(arr, StringGrid1.RowCount-2);
SetLength(arr_1, StringGrid1.RowCount-2);

{...}

arr   := nil;
arr_1 := nil;

Первый nil, прокатывает, на втором вываливаются дикие ошибки "Access violation ..."

Где грабли?


 
Алхимик ©   (2004-03-17 02:05) [1]

var
  arr, arr_1 : array of byte;
begin
SetLength(arr, 2);
SetLength(arr_1, 2);

ShowMessage(IntToStr(arr[1]));

arr   := nil;
arr_1 := nil;
end;


Работает. Ошибка в другом месте.


 
Defunct ©   (2004-03-17 02:39) [2]

А в приведенном примере яяяя   (17.03.04 01:48) память не освобождается. Перед тем как указателям Nil присваивать массивы нужно убить, тем же SetLength:

SetLength(arr, 0);
SetLength(arr_1, 0);


 
KSergey ©   (2004-03-17 05:58) [3]

> Defunct ©   (17.03.04 02:39) [2]

Обман трудового населения. Присвоить нил - есть освободить память.


 
Anatoly Podgoretsky ©   (2004-03-17 09:14) [4]

Defunct ©   (17.03.04 02:39) [2]
Установка нулевой длины устнавливает переменную в NIL
Установка в nil устнавливает длину в 0
Повторная установка в в nil или длину в 0, ничего не меняет.


 
tria ©   (2004-03-17 10:35) [5]

>яяяя
ИМХО:
Скорее всего, определения массивов у тебя идут один за другим. При работе с первым массивом ты где-то обращаешься за пределы размерности массива. При отключенном в настройках компиляции контроле происходит затирание адреса, хранящегося в arr_1 (на место ссылки пишутся твои данные). В дальнейшем при попытке обращения по неправильному адресу в arr_1 система вылетает. Ищи ошибку в коде до строчки arr_1=nill
Для начала посавь опцию Range checking.



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
6-1075372373
Скив
2004-01-29 13:32
2004.04.04
embeddedwb


14-1074888931
ИМХО
2004-01-23 23:15
2004.04.04
НОВОСТЬ МЕСЯЦА для всех футбольных болельщиков!


1-1079199559
John Doe
2004-03-13 20:39
2004.04.04
Файлы файлы файлы!!


7-1074709981
Nick_Omsk
2004-01-21 21:33
2004.04.04
Есть ли Windows DDK на русском языке. Если есть, то где?


4-1075207610
GrayFace
2004-01-27 15:46
2004.04.04
Как узнать размер памяти какого-то процесса?