Вниз
Скачать: CL | DM;

Invalid pointer operation   Найти похожие ветки 

← →
Dysan ©   (2004-05-17 11:47) [0]

Почему при использовании динамического массива типа
array of array of real
при вызове метода close у формы возникает ошибка
"Invalid  pointer operation"


← →
MU ©   (2004-05-17 11:50) [1]

Без кода не разобраться... Как "используете" массив


← →
R   (2004-05-17 11:53) [2]

Покажи как выделяешь память под массив и как освобождаешь


← →
Dysan ©   (2004-05-17 11:56) [3]

вот...
хороший вопрос как освобождашь!
вот так он обьявлен
Tonaj: array of array of real;
вот так задаю размер
setlength(tonaj,2,round(cPutOfMarshrut[0].dl_put*10));
далее он заполняеться!
при попытке FreeMem(tonaj); как раз и возникает описаная выше ошибка. :(


← →
Dysan ©   (2004-05-17 11:57) [4]

вот...
хороший вопрос как освобождашь!
вот так он обьявлен
Tonaj: array of array of real;
вот так задаю размер
setlength(tonaj,2,round(cPutOfMarshrut[0].dl_put*10));
далее он заполняеться!
при попытке FreeMem(tonaj); как раз и возникает описаная выше ошибка. :(


← →
Algol   (2004-05-17 11:59) [5]

А зачем FreeMem ?


← →
[lsmer]Barmaglot   (2004-05-17 12:00) [6]

А задать размер массива равным нулю с помощью SetLength не судьба?


← →
[lsmer]Barmaglot   (2004-05-17 12:01) [7]

А задать размер массива равным нулю с помощью SetLength не судьба?


← →
Dysan ©   (2004-05-17 12:10) [8]

странная весчь
при закрытии главной формы
даже если указать setlength(tonaj,0,0);
тоже возникает таже ошибка... :(


← →
Goida ©   (2004-05-17 12:10) [9]


> Dysan

FreeMem не используется для освобождение такого дин. массива. Нужно с помощью SetLength делать его длину нулевой либо присваивать переменной дин.массива значение NIL. И то, и то - ВЕРНО.


← →
Dysan ©   (2004-05-17 12:10) [10]

странная весчь
при закрытии главной формы
даже если указать setlength(tonaj,0,0);
тоже возникает таже ошибка... :(
и именно на этой комманде.


← →
R   (2004-05-17 12:14) [11]

//освобождаем
Tonaj:=nil;


← →
Silver Alex ©   (2004-05-17 12:15) [12]

динамические массивы вообще  не надо освобождать, память освобождается автоматически, но при желании конечно можно сделать это ручками просто присвоить nil(MyArray:=nil)


← →
Dysan ©   (2004-05-17 12:16) [13]

Tonaj:=nil;
уже пробовал
тот же эффект :(


← →
Dysan ©   (2004-05-17 12:16) [14]

Tonaj:=nil;
уже пробовал
тот же эффект :(


← →
R   (2004-05-17 12:21) [15]

Возможно память по дин. массив выделена не правильно


← →
Goida ©   (2004-05-17 12:22) [16]


> Dysan

Посмотри внимательней весь свой код, может быть ты что-то некорректно присваиваешь массиву?


← →
Dysan ©   (2004-05-17 12:23) [17]

что значит не правильно
setlength(tonaj,2,500);
это не правильно?


← →
Goida ©   (2004-05-17 12:26) [18]


> Dysan

Посмотри внимательней весь свой код, может быть ты что-то некорректно присваиваешь массиву?


← →
R   (2004-05-17 12:27) [19]

См. Goida ©   (17.05.04 12:22) [16]
Память выделяешь под меньшее колличество элементов,
попробуй поэкспериментировать прибавь к 500+1=501 или более


← →
Dysan ©   (2004-05-17 12:37) [20]

странно 501 решил проблему
спасибо.



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

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



Память: 0.49 MB
Время: 0.022 c
3-1084288115
TohaNik_
2004-05-11 19:08
2004.05.30
ХП. В чем разница?


1-1084606165
Alek_1
2004-05-15 11:29
2004.05.30
Форма в Dll


3-1083933115
kot
2004-05-07 16:31
2004.05.30
Помогите с MySQL


1-1084558378
Bulanov
2004-05-14 22:12
2004.05.30
Развернуть приложение


3-1084362480
Basaur
2004-05-12 15:48
2004.05.30
технология DataSnap




   Наверх