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

Вниз

Invalid Pointer Operation после завершения программы   Найти похожие ветки 

 
Franzy ©   (2004-04-15 18:25) [0]

После завершения программы вдруг выскакивает ошибка Invalid Pointer Operation. Никак не могу понять, с чем она может быть связана.
Что КОНКРЕТНО ее может вызвать? В программе используются дин. массивы, свои объекты не используются.


 
WebErr ©   (2004-04-15 18:31) [1]

Когда именно? После закрытия окна? Тогда рекомендую посмотреть не пытается ли окно освободить по второму разу Some.Free (с вашей помощью) некий ресурс, член (извеняюсь) формы.


 
Anatoly Podgoretsky ©   (2004-04-15 19:26) [2]

Неверная работа с указателями, динамический массив это тоже указатель, а что внутри массива вообще можно догадываться


 
Юрий Зотов ©   (2004-04-15 19:33) [3]

> Franzy ©   (15.04.04 18:25)

DLL используется? Если да, передаются ли в нее дин. массивы?


 
Franzy ©   (2004-04-15 22:15) [4]

Да, ошибка возникает именно сразу после того, как нажат "крестик".

Я "убираю" дин. массивы так: array:=nil. Но даже если эти строчки закомментировать, ничего не меняется. Вообще, у меня когда-то была похожая проблема, там дело было связано с длиной массива. Но здесь все чисто.

Дллки никакие не используются.

Вопрос остается тот же:) Какие ошибки в работе с дин. массивами могут быть причиной этого сообщения, причем возникающего после закрытия программы? Кто-нибудь с подобным сталкивался?


 
Юрий Зотов ©   (2004-04-15 22:29) [5]

> Franzy ©   (15.04.04 22:15) [4]

1. Нужно объявление массива  - что в нем за элементы?
2. Вообще говоря, причиной может быть и не массив.
3. Попробуйте локализовать ошибку. В одном из модулей сделайте секцию finalization, в ней напишите что угодно, поставьте BreakPoint и пройдите стадию завершения отладчиком.


 
Dimaxx ©   (2004-04-15 22:38) [6]

Бывало такое, когда забывал выполнить FreeMem при закрытии.


 
Franzy ©   (2004-04-15 22:42) [7]

У меня несколько массивов - точнее говоря, даже несколько десятков :) В частности:
-------------------------------------------------
Type
 TNbrs = Array [0..nbr_num] of longint;

 TNode = Record
   Nbr :  TNbrs;
   r : T3dPoint;
   belongs : TaoMasters;
 End;

 TNodeType =(Base, Inner, Conc);

TChunkArray = array of array of array of longint;

TRefArray = Record
  ch : array[1..4] of byte;
  typ : TNodeType;
End;

var

  Net : Array of TNode;
  nb : array [1..7] of TChunkArray;
  ref : array of TRefArray;
  Carr : array [0..3] of array [1..6] of TChunkArray;
---------------------------------------------------

Расскажите, пожалуйста, подробнее о методе дебага с finalization - мне этот метод, похоже, не знаком.


 
vertal   (2004-04-16 01:48) [8]

У меня тоже такое было , причем при прохождении встроенным в среду отладчиком ошибка была на строке "end." , то есть в самом конце программы,причем дельфийские динамические массивы не использовались.Я так и не разобрался , только обнаружил , что если прерывать программу через Halt , то такое сообщение не появляется.


 
kaif ©   (2004-04-16 03:39) [9]

Подробнее про finalization:

//текст модуля
finalization
 // здесь что-то вставить, что оптимизатор не выкинет,
 // например, присвоение значения какой-нибудь глобальной  
 // переменной и поставить на эту строку точку останова.
 // затем запустить программу и после того, как она здесь
 // застрянет - идти пошагово.
end.


 
Спрашивающий_   (2004-04-16 06:51) [10]

TChunkArray = array of array of array of longint;
Net : Array of TNode;
ref : array of TRefArray;
Заремарьте все действия если это возможно поочередно
с вышеуказанными дин массивами, если на каком то из них
ошибка при выходе исчезнет, то проверьте правильность
выделение памяти под динамический массив  SetLength(..



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

Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.043 c
1-1082030490
Назаров Евгений
2004-04-15 16:01
2004.05.02
PChar строка


3-1081184519
Floppy
2004-04-05 21:01
2004.05.02
CompactDatabase


1-1081899784
Ivanov
2004-04-14 03:43
2004.05.02
Как сменить иконку у .exe-файла


14-1081161379
ИМХО
2004-04-05 14:36
2004.05.02
Развал СССР


6-1078960883
Bes
2004-03-11 02:21
2004.05.02
SSL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский