Hola a todos,
estoy haciendo un pequeño programa en C y SDL y tengo un error que me tiene desconcertado. El mismo programa unas veces se ejecuta bien y otras me peta y saca esta traza:
Bueno pues a ver si alguien sabe a qué se debe. Porque yo entiendo que pueda hacer algo relacionado con las direcciones de memoria, pero no entiendo porqué hay veces que falla y otras que no. Ahora mismo incluso tengo comentado el bucle principal de ejecución del programa, de forma que en todas la ejecuciones se ejecutan las mismas instrucciones.Código:Comienzo del programa *** glibc detected *** ./MicroPaint.sh: double free or corruption (out): 0x08089458 *** ======= Backtrace: ========= /lib/tls/i686/cmov/libc.so.6[0xb7e39a85] /lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7e3d4f0] /usr/lib/libX11.so.6(XkbFreeClientMap+0xe4)[0xb79d87e4] /usr/lib/libX11.so.6(XkbFreeKeyboard+0x123)[0xb79dd6b3] /usr/lib/libX11.so.6[0xb79d1143] /usr/lib/libX11.so.6(_XFreeDisplayStructure+0x11f)[0xb7967c7f] /usr/lib/libX11.so.6(XCloseDisplay+0xf6)[0xb7954fc6] /usr/lib/libSDL-1.2.so.0[0xb7f58d2e] /usr/lib/libSDL-1.2.so.0[0xb7f62bb1] /usr/lib/libSDL-1.2.so.0(SDL_VideoQuit+0x50)[0xb7f4de70] /usr/lib/libSDL-1.2.so.0(SDL_QuitSubSystem+0x64)[0xb7f23424] /usr/lib/libSDL-1.2.so.0(SDL_Quit+0x1e)[0xb7f2349e] ./MicroPaint.sh[0x8049a3f] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7de4450] ./MicroPaint.sh[0x80487b1] ======= Memory map: ======== 08048000-0804a000 r-xp 00000000 08:03 360823 /home/angel/programacion/sdl/MicroPaint/MicroPaint.sh 0804a000-0804b000 rw-p 00001000 08:03 360823 /home/angel/programacion/sdl/MicroPaint/MicroPaint.sh 0804b000-0808d000 rw-p 0804b000 00:00 0 [heap] b6e19000-b6e23000 r-xp 00000000 08:02 82054 /lib/libgcc_s.so.1 b6e23000-b6e24000 rw-p 0000a000 08:02 82054 /lib/libgcc_s.so.1 b6e6f000-b6e70000 ---p b6e6f000 00:00 0 b6e70000-b7670000 rw-p b6e70000 00:00 0 [.......................................................] b7f17000-b7f18000 r--p 00149000 08:02Cancelado
Saludos.
Marcadores