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

Вниз

Ошибка invalid pointer operation   Найти похожие ветки 

 
Fenix ©   (2006-03-17 15:43) [0]

Доброе время суток.
У меня начала каждый раз при закрытии приложения выскакивать ошибка "invalid pointer operation". Но не выделяеться строка. Из-за чего она может выскакивать? Я думаю, что это из-за динамически создаваемых компонентов. Но точно неуверен.
Кто знает как ее исправить прошу написать.


 
Stakan ©   (2006-03-17 15:45) [1]

А поподробнее можно?
DLL часом не используются?


 
Desdechado ©   (2006-03-17 15:46) [2]

не обращаться по адресам, указывающим в никуда (после освобождения памяти)


 
Fenix ©   (2006-03-17 15:47) [3]


> Stakan ©

ДЛЛ нету.


> не обращаться по адресам, указывающим в никуда (после освобождения
> памяти)

Щас проверю. спс за подсказку.


 
Fenix ©   (2006-03-17 15:50) [4]

коментирую все в FormClose, но всеравно выскакивает эта ошибка. Она выскакивает только после закрытия приложения.


 
tesseract ©   (2006-03-17 15:52) [5]

Как правило вылетает при неправильной чистке указателей, или PChar.


> коментирую все в FormClose,


Надо не в FromClose зав формой чистить а в FromDestroy;
FormClose  не убивает форму.


 
Fenix ©   (2006-03-17 15:56) [6]


> tesseract ©

у меня используеться NameGroup:array [0..20] of char;
Может из за него ошибка? Просто мне что бы записать структуру в файл, надо в Char перевести, т.к. со String пишет ошибку...


 
Stakan ©   (2006-03-17 15:59) [7]

Fenix ©   (17.03.06 15:50) [4]
То, что ошибка вылетает после закрытия ещё не значит, что её причина где - то в конце программы.
Используются ли строки, дин. массивы, PChar?


 
Fenix ©   (2006-03-17 16:04) [8]


> строки, дин. массивы

да использовались. но по окончанию программы я не освобождал память: SetLength(a,0);. Т.к. до этого и без освобождения норм рабтало.


 
Сергей М. ©   (2006-03-17 16:18) [9]


> Fenix ©   (17.03.06 15:47) [3]
> ДЛЛ нету.


Ой врешь .. Где-тот в коде твоего шедевра оное явно или неявно используется ..


 
Fenix ©   (2006-03-17 17:02) [10]

Нашел где ошибка
Setlength(Move_item,contacts.Count-1);
for i:=0 to contacts.Count-1 do begin
Move_item[i]:=Tmenuitem.Create(User_move);
Move_item[i].Caption:=contacts[i];
User_move.Add(Move_item[i]);
end;

Почему может быть ошибка? Вроде при уничтожении User_move и все подменю автоматически должны очиститься...


 
palva ©   (2006-03-17 17:26) [11]

Если длина динамического массива contacts.Count-1
то последний его индекс (считаю с нуля) contacts.Count-2

Но это мысли вслух. На самом деле "invalid pointer operation" это когда к пойнтеру прибавляют число. Или я опять ошибаюсь?


 
Stakan ©   (2006-03-17 17:31) [12]

palva ©   (17.03.06 17:26) [11]
Правильно сказал, выход за границу массива.

> На самом деле "invalid pointer operation" это когда к
> пойнтеру прибавляют число.

Вот это не совсем корректно


 
Fenix ©   (2006-03-17 17:38) [13]


> то последний его индекс (считаю с нуля) contacts.Count-2

СПС теперь все работает хорошо.


 
Fenix ©   (2006-03-17 17:38) [14]


> то последний его индекс (считаю с нуля) contacts.Count-2

СПС теперь все работает хорошо.



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

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

Наверх




Память: 0.49 MB
Время: 0.036 c
6-1134836998
ReFresh
2005-12-17 19:29
2006.04.02
Отключить "подключение по локальной сети"


2-1142359508
San_pancho
2006-03-14 21:05
2006.04.02
Определение длинны текста, в пикселях.


2-1142528321
Ell
2006-03-16 19:58
2006.04.02
RichEdit замена текста


15-1142168818
DillerXX
2006-03-12 16:06
2006.04.02
Подскажите такую программу


6-1135169890
ZDenis
2005-12-21 15:58
2006.04.02
TStream