Я работаю над проектом и недавно столкнулся с проблемой, которую я пока не смог решить. Я надеюсь, что вы можете помочь мне.
Когда я удаляю следующий фрагмент кода, программа снова работает хорошо.
int connect(void){
int x, y;
Indice i1, i2;
i1.x = indX;
i1.y = indY;
compared[cpt] = i1;
bool search = true;
int col = compare_color[i1.y][i1.x];
int count;
while (search){
count = cpt;
for (y=0; y < BUB_NY; y++){
i2.y = a;
for (x=0; x < BUB_NX; x++){
i2.x = b;
if (bub_array[y][x] == 1 && neighbour(i1, i2) && col == compare_color[i2.y][i2.x] && !already_compared(i2)){
i1 = i2;
neighbour_list[cpt] = i2;
cpt++;
compared[cpt] = i2;
}
}
}
if (count == cpt){search = false;}
}
return cpt;
Вот вывод при отладке с помощью gdb:
(gdb) run
Starting program: /home/me/Desktop/projet_methodo/projet
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff259f700 (LWP 6341)]
Thread 1 "projet" received signal SIGSEGV, Segmentation fault.
0x00007ffff62428b4 in caca_free_display ()
from /usr/lib/x86_64-linux-gnu/libcaca.so.0
(gdb) backtrace
#0 0x00007ffff62428b4 in caca_free_display ()
from /usr/lib/x86_64-linux-gnu/libcaca.so.0
#1 0x00007ffff6243620 in __caca0_end ()
from /usr/lib/x86_64-linux-gnu/libcaca.so.0
#2 0x00007ffff7b902fc in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#3 0x00007ffff7b6ec1e in SDL_VideoQuit ()
from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#4 0x00007ffff7b6f03f in SDL_VideoInit ()
from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#5 0x00007ffff7b46e4c in SDL_InitSubSystem ()
from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#6 0x00007ffff7b46ec4 in SDL_Init ()
from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#7 0x00005555555557fb in main (argc=1, argv=0x7fffffffdf48) at projet.c:175
(gdb)