Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
14-1078827222
alexEagle
2004-03-09 13:13
2004.04.04
Вызов из приложения HTML Help


8-1067042786
Almaz
2003-10-25 04:46
2004.04.04
Создание AVI файла


7-1074588555
galexis
2004-01-20 11:49
2004.04.04
Delphi 6 и C++ Builder 6


8-1070004089
user
2003-11-28 10:21
2004.04.04
Как удалить определенное кол-во секунд из .wav файла


6-1075204305
Gorlum
2004-01-27 14:51
2004.04.04
Почта




   Наверх