Текущий архив: 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.47 MB
Время: 0.043 c