Хоть бы локализовали ошибку-то... Всякие там mem*, str* и пр. Вполне могут давать SIGSEGV, если им фигню на вход подсунуть. Да и много чего ещё может быть.
#0 rawmemchr () at ../sysdeps/i386/rawmemchr.S:70
#1 0xb7becf5b in _IO_str_init_static_internal (sf=0xbffff3d8,
ptr=0x65646956 <Address 0x65646956 out of bounds>, size=0, pstart=0x0)
at strops.c:45
#2 0xb7be08d3 in _IO_vsscanf (
string=0x65646956 <Address 0x65646956 out of bounds>,
format=0x804bc69 "Video %dx%d;",
args=0xbffff4a8 "\340\324\004\b\344\324\004\b") at iovsscanf.c:44
#3 0xb7bd04cb in __sscanf (s=0x65646956 <Address 0x65646956 out of bounds>,
format=0x804bc69 "Video %dx%d;") at sscanf.c:34
#4 0x0804932f in Read_config () at files.cpp:56
#5 0x70656420 in ?? ()
#6 0x33206874 in ?? ()
#7 0x530a3b32 in ?? ()
#8 0x76205846 in ?? ()
#9 0x6d756c6f in ?? ()
#10 0x35322065 in ?? ()
#11 0x4d0a3b35 in ?? ()
#12 0x63697375 in ?? ()
#13 0x6c6f7620 in ?? ()
#14 0x20656d75 in ?? ()
#15 0x3b353532 in ?? ()
#16 0x6265440a in ?? ()
---Type <return> to continue, or q <return> to quit---
#17 0x31206775 in ?? ()
#18 0x614d0a3b in ?? ()
#19 0x64207370 in ?? ()
#20 0x63657269 in ?? ()
#21 0x79726f74 in ?? ()
#22 0x70616d20 in ?? ()
#23 0x0a3b2f73 in ?? ()
#24 0x69726353 in ?? ()
#25 0x20737470 in ?? ()
#26 0x65726964 in ?? ()
#27 0x726f7463 in ?? ()
#28 0x63732079 in ?? ()
#29 0x74706972 in ?? ()
#30 0x0a3b2f73 in ?? ()
#31 0x6e756f53 in ?? ()
#32 0x64207364 in ?? ()
#33 0x63657269 in ?? ()
#34 0x79726f74 in ?? ()
#35 0x756f7320 in ?? ()
#36 0x2f73646e in ?? ()
#37 0x754d0a3b in ?? ()
#38 0x20636973 in ?? ()
#39 0x65726964 in ?? ()
---Type <return> to continue, or q <return> to quit---
#40 0x726f7463 in ?? ()
#41 0x756d2079 in ?? ()
#42 0x2f636973 in ?? ()
#43 0x65540a3b in ?? ()
#44 0x72757478 in ?? ()
#45 0x64207365 in ?? ()
#46 0x63657269 in ?? ()
#47 0x79726f74 in ?? ()
#48 0x78657420 in ?? ()
#49 0x65727574 in ?? ()
#50 0x0a3b2f73 in ?? ()
#51 0x73646f4d in ?? ()
#52 0x72696420 in ?? ()
#53 0x6f746365 in ?? ()
#54 0x6d207972 in ?? ()
#55 0x2f73646f in ?? ()
#56 0xbfff0a3b in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Похоже, уходит за пределы адресного пространства.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Ошибка в Read_config в files.cpp
Исходники ужасны. files.cpp ссылается на переменные, которые в нём не задекларированы (include'ов с декларациями в нём вообще нет). Мне даже лень смотреть, выделяется ли где-нибудь память для MAP_DIR, SCRIPT_DIR и пр., в которые sscanf складыват данные.
PS ну, а так, да, код не очень… К тому же ещё будут проблемы далее по коду с sscanf'ами.
PPS оставлять бинарники в архиве - тоже нехорошо. Во-первых на другой машине они могут просто не запуститься, во-вторых размер лишний, в-третьих, а вдруг у Вас вирусы?
Переписал немного функию Read_config(). Движок запустился в дебаггере, а просто так если запустить, то вылетает "Исключение в операции с плавающей точкой"
1. Пытаемся прочитать 400 символов конфига. (почему 400?)
2. Начиная с каждого символа парсим 12 переменных (всех, по очереди, начиная с одного и того же символа).
А про выделение памяти, судя по всему, мои слова были проигнорированы.
Вы не понимаете, что пишете. Вы создали массив из 400 указателей на символ. config[i] - это указатель на символ. А сами указатели куда ведут? в никуда.
&config это то же самое, что и config[0], т.е. указатель, ведущий в никуда. И вот туда Вы и считываете строку из файла. 400 байт.