Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Acces Violation!


Автор: 4ert 14.4.2006, 20:49
Люди, помогите плиз!!!!!!!!!.......
Вопрос такой,.... Да и не вопрос это вовсе........
Короче, ситуация такова. Решил я написать на delphi козла(игра карточная,если кто не знает),честно говоря я плоховато знаю Delphi,но всё же взялся.........
И вот что обнаружилось,как бы выразиться..... короче говоря при выполнении программы
некоторые функции(точнее почти все) изредка просто игнорируются, скажем у меня есть функция,
регистрации вышедших карт,и удаления их из массива игрока(чтобы он не кидал их дважды),где-то в 17 раз из двадцати всё ништяк!!!1,но в оставшиеся три бот может воспользоваться выбывшей картой дважды, и даже трижды!!!!, в коде я уверен почти на сто(нехочу приводить исходник,просто я сомневаюсь, что у кого-то возникнет желание разбираться в 2332 строках кода...),и так происходит почти со всеми 20 вспомогательными функциями в моей программе.Улучшить ситуацию можно,вызвав в нужной ситуации нужную функцию дважды,или трижды,количество глюков стало значительно меньше(но все равно имелись...)...короче говоря, я продолжил писать, решил разобраться с этим позже. И вот сейчас я в принципе закончил всю думающую часть программы, и что я обнаружил?!, да то,что даже один кон не может закончиться без Acces Violation!,причем ошибка возникает не в одном месте(тогда бы я заметил в каком точнее при каком "раскладе",и сто процентов выявил бы браковую функцию),но ошибка(EAccesViolation(216)) теперь может вылетить когда угодно и где угодно(даже в самом начале).Я вообще плохо ознакомлен с работой памяти,но я понимаю,что эта ошибка возникает при обращении программы к неинициализированному участку памяти(из helpa),тогда возникает вполне законный вопрос начинающего ламера, как её инициализировать?............Возможно все дело в такой организации игры: у меня ..уева туча глобальных переменных и около двадцати функций, которые постоянно изменяют значения этих глобальных переменных, может из-за этого?...Ещё у меня вся логика бота построена на операторах for to do, и if then.Наконец у меня куча вызовов функций из самих функций,т.е. например главная функция программы(управляющая), запускает скажем функцию захода(первого хода), а та в свою очередь анализируя имеющиеся у игрока карты, запускает функцию поиска минмального козыря(если видит что остались одни козыря), я вообще молчу о вызвах таких вспомогательных функций как поиск подстроки,поиск максимального минмального элемента в массиве,замены подстроки и т.д.....а ещё вперемешку с 216-ой всё чаще появляется EStackOverlow.....Может быть ещё потому, что карты загружаются в объект TImage из файлов bmp,(вообще я хочу конечно создать res файл с ними,просто руки не дошли).
Вот я прошу людей добрых,чтоб помогли мне понять из-чего и что, случается,а то у меня уже крыша съезжает,.....если кому-нибудь исходник понадобиться оставьте мыло, вышлю, ну или сами напишите на [email protected]

Автор: Yanis 14.4.2006, 20:55
Какой ужас smile

P. S. До конца не дочитал. Автор, примите к сведению.


M
Girder
Не оффтопь :) !

Автор: Snowy 14.4.2006, 22:44
Душераздирающе.
А теперь банальный вопрос: В чем проблема?
Во всей этой куче буковок я не вижу вопроса.

Автор: Yuran 15.4.2006, 00:13
да! Ну ты напиши по проще и тогда возможно тебе помогут!

P.S. Я так и не понял в чём вопрос! Так что давай сокращай

Автор: 4ert 18.4.2006, 03:08
То, что вы не видите вопроса это странно,....возможно это говорит о вашем некомпетентности.....
я не хочу обидеть, просто я и на других форумах оставил это сообщение... и О,чудо!!!!!!------все, всё поняли и ответили, причём, будете смеяться, правильно!----а короче никак,либо перечислить в каких местах сомневаюсь я, либо приводить весь исходник, поверьте наслово, первое короче............
http://www.goldfaq.ru/modules/newbb/viewtopic.php?topic_id=2912&post_id=51822&order=0&viewmode=flat&pid=0&forum=7.....А ещё писали форум хороший..... 

Автор: Albinos_x 18.4.2006, 04:52
Цитата(4ert @  18.4.2006,  03:08 Найти цитируемый пост)
То, что вы не видите вопроса это странно,....возможно это говорит о вашем некомпетентности.....


не Вам судить об этом... сначало научитесь корректно ставить вопрос...

Цитата(4ert @  18.4.2006,  03:08 Найти цитируемый пост)
Вот здесь поняли.........А ещё писали форум хороший.....

тут не поняли, а случайно угадали... мы здесь гаданием не занимаемся... 

а ошибка Acces Violation ни о чём не говорит и возникает по множеству причин и вылетать может не в месте ошибки в коде, а далеко после неё.... а EStackOverlow говорит только о неправильно построенной логики, или неправильного использования переменных, массивов, рекурсий и т.д.... 

Автор: Marlin 18.4.2006, 06:05
Ну и топай туда где тебя поняли. И нечего обвинять людей в некомпетентности, если сам в этом не разбираешься.

Да к стати твоя ошибка может возникать из за обращения к массиву несуществующего элемента
 

Автор: Yanis 18.4.2006, 07:43
Цитата(4ert @  18.4.2006,  03:08 Найти цитируемый пост)
То, что вы не видите вопроса это странно,....возможно это говорит о вашем некомпетентности.....
я не хочу обидеть, просто я и на других форумах оставил это сообщение... и О,чудо!!!!!!------все, всё поняли и ответили, причём, будете смеяться, правильно!----а короче никак,либо перечислить в каких местах сомневаюсь я, либо приводить весь исходник, поверьте наслово, первое короче............
Вот здесь поняли.........А ещё писали форум хороший.....  

offtop конечно, но я опять понял не всё  smile   

Автор: Sunvas 18.4.2006, 07:52
Цитата(4ert @  18.4.2006,  03:08 Найти цитируемый пост)
 я и на других форумах оставил это сообщение... и О,чудо!!!!!!------все, всё поняли и ответили, причём, будете смеяться, правильно!

Возникает вполне логичные вопрос: а нифиг ты этот вопрос еще и нам задаешь? 

Автор: Marlin 18.4.2006, 07:55
Sunvas - там наверное ему люди "Некомпетентно" ответили 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)