Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Как освободить память после 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.04 c
1-1079528836
Vera
2004-03-17 16:07
2004.04.04
вопрос по Delphi


3-1078402420
shinus
2004-03-04 15:13
2004.04.04
ADO MS Jet


3-1078933231
VitGun
2004-03-10 18:40
2004.04.04
Пара вопросов про Access...


14-1078458896
Рамиль
2004-03-05 06:54
2004.04.04
Вирусы


1-1079435545
Rule
2004-03-16 14:12
2004.04.04
Вопрос по "детям" в MDI приложении





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский