No termino de entender bien que hiciste pero funciona más rápido

.
Pero volvimos a los mismos errores del principio.
Al compilar otra ves puede funcionar pero otras veces no, pero en ninguna compilación queda bien (Incluso el ejecutable que viene en el archivo sale a veces con un
Abortado (`core' generado) 
)
Si a vos te funciona bien, entonces quizás mi MG tiene algún defecto (Algo que creo posible porque desde que me cambiaron la placa madre funciona más lenta para algunas cosas).
Salidas en GDB (Código inalterado):
Al cerrar el programa:
Program received signal SIGSEGV, Segmentation fault.
0xb7cd7a0e in _int_free (av=0xb7e07440 <main_arena>, p=0x809d4e0, have_lock=0) at malloc.c:4085
4085 malloc.c: No existe el archivo o el directorio.
*** glibc detected *** /home/ezequiel/Escritorio/SDL/Barajas/Juego: free(): invalid next size (fast): 0x0809de48 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb7cd6ee2]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(+0x2b455)[0xb7f5c455]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_FreeSurface+0x86)[0xb7f5ec06]
/home/ezequiel/Escritorio/SDL/Barajas/Juego[0x8049ab0]
/home/ezequiel/Escritorio/SDL/Barajas/Juego[0x8049761]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb7c7a4d3]
/home/ezequiel/Escritorio/SDL/Barajas/Juego[0x8048b91]
======= Memory map: ========
08048000-0804b000 r-xp 00000000 08:01 276286 /home/ezequiel/Escritorio/SDL/Barajas/Juego
0804b000-0804c000 r--p 00002000 08:01 276286 /home/ezequiel/Escritorio/SDL/Barajas/Juego
0804c000-0804d000 rw-p 00003000 08:01 276286 /home/ezequiel/Escritorio/SDL/Barajas/Juego
0804d000-080f5000 rw-p 00000000 00:00 0 [heap]
b6c54000-b6d92000 rw-s 00000000 00:04 15892492 /SYSV00000000 (deleted)
b6d92000-b6de9000 rw-p 00000000 00:00 0
b6e81000-b6e86000 r-xp 00000000 08:01 265349 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b6e86000-b6e87000 r--p 00004000 08:01 265349 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b6e87000-b6e88000 rw-p 00005000 08:01 265349 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b6e88000-b6e90000 r-xp 00000000 08:01 265367 /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b6e90000-b6e91000 r--p 00007000 08:01 265367 /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b6e91000-b6e92000 rw-p 00008000 08:01 265367 /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b6e92000-b6e9b000 r-xp 00000000 08:01 265341 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b6e9b000-b6e9c000 r--p 00008000 08:01 265341 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b6e9c000-b6e9d000 rw-p 00009000 08:01 265341 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b6eae000-b6eaf000 r--p 00fd4000 08:01 267231 /usr/lib/locale/locale-archive
b6eaf000-b6fe0000 r--p 00d6c000 08:01 267231 /usr/lib/locale/locale-archive
b6fe0000-b701f000 r--p 002fc000 08:01 267231 /usr/lib/locale/locale-archive
b701f000-b721f000 r--p 00000000 08:01 267231 /usr/lib/locale/locale-archive
b721f000-b7223000 rw-p 00000000 00:00 0
b7223000-b7236000 r-xp 00000000 08:01 131318 /lib/i386-linux-gnu/libresolv-2.15.so
b7236000-b7237000 r--p 00013000 08:01 131318 /lib/i386-linux-gnu/libresolv-2.15.so
b7237000-b7238000 rw-p 00014000 08:01 131318 /lib/i386-linux-gnu/libresolv-2.15.so
b7238000-b723a000 rw-p 00000000 00:00 0
b723a000-b7240000 r-xp 00000000 08:01 265803 /usr/lib/i386-linux-gnu/libogg.so.0.8.0
b7240000-b7241000 r--p 00005000 08:01 265803 /usr/lib/i386-linux-gnu/libogg.so.0.8.0
b7241000-b7242000 rw-p 00006000 08:01 265803 /usr/lib/i386-linux-gnu/libogg.so.0.8.0
b7242000-b726b000 r-xp 00000000 08:01 265968 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b726b000-b726c000 ---p 00029000 08:01 265968 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b726c000-b726d000 r--p 00029000 08:01 265968 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b726d000-b726e000 rw-p 0002a000 08:01 265968 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b726e000-b73d4000 r-xp 00000000 08:01 265970 /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b73d4000-b73e5000 r--p 00165000 08:01 265970 /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b73e5000-b73e6000 rw-p 00176000 08:01 265970 /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b73e6000-b73e7000 rw-p 00000000 00:00 0
b73e7000-b7435000 r-xp 00000000 08:01 265311 /usr/lib/i386-linux-gnu/libFLAC.so.8.2.0
b7435000-b7436000 r--p 0004e000 08:01 265311 /usr/lib/i386-linux-gnu/libFLAC.so.8.2.0
b7436000-b7437000 rw-p 0004f000 08:01 265311 /usr/lib/i386-linux-gnu/libFLAC.so.8.2.0
b7437000-b744d000 r-xp 00000000 08:01 131275 /lib/i386-linux-gnu/libnsl-2.15.so
b744d000-b744e000 r--p 00015000 08:01 131275 /lib/i386-linux-gnu/libnsl-2.15.so
b744e000-b744f000 rw-p 00016000 08:01 131275 /lib/i386-linux-gnu/libnsl-2.15.so
b744f000-b7451000 rw-p 00000000 00:00 0
b7451000-b7456000 r-xp 00000000 08:01 265345 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b7456000-b7457000 r--p 00004000 08:01 265345 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b7457000-b7458000 rw-p 00005000 08:01 265345 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b7458000-b745a000 r-xp 00000000 08:01 265334 /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b745a000-b745b000 r--p 00001000 08:01 265334 /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b745b000-b745c000 rw-p 00002000 08:01 265334 /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b745c000-b7461000 r-xp 00000000 08:01 265398 /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b7461000-b7462000 r--p 00004000 08:01 265398 /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b7462000-b7463000 rw-p 00005000 08:01 265398 /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b7463000-b7464000 rw-p 00000000 00:00 0
b7464000-b74d1000 r-xp 00000000 08:01 265894 /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b74d1000-b74d3000 r--p 0006c000 08:01 265894 /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b74d3000-b74d4000 rw-p 0006e000 08:01 265894 /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b74d4000-b74d8000 rw-p 00000000 00:00 0
b74d8000-b74e0000 r-xp 00000000 08:01 131347 /lib/i386-linux-gnu/libwrap.so.0.7.6
b74e0000-b74e1000 r--p 00007000 08:01 131347 /lib/i386-linux-gnu/libwrap.so.0.7.6
b74e1000-b74e2000 rw-p 00008000 08:01 131347 /lib/i386-linux-gnu/libwrap.so.0.7.6
b74e2000-b74ed000 r-xp 00000000 08:01 265735 /usr/lib/i386-linux-gnu/libjbig.so.0.0.0
b74ed000-b74ee000 r--p 0000a000 08:01 265735 /usr/lib/i386-linux-gnu/libjbig.so.0.0.0
b74ee000-b74f1000 rw-p 0000b000 08:01 265735 /usr/lib/i386-linux-gnu/libjbig.so.0.0.0
b74f1000-b7515000 r-xp 00000000 08:01 131257 /lib/i386-linux-gnu/liblzma.so.5.0.0
b7515000-b7516000 r--p 00024000 08:01 131257 /lib/i386-linux-gnu/liblzma.so.5.0.0
b7516000-b7517000 rw-p 00025000 08:01 131257 /lib/i386-linux-gnu/liblzma.so.5.0.0
b7517000-b752e000 r-xp 00000000 08:01 131349 /lib/i386-linux-gnu/libz.so.1.2.7
b752e000-b752f000 r--p 00016000 08:01 131349 /lib/i386-linux-gnu/libz.so.1.2.7
b752f000-b7530000 rw-p 00017000 08:01 131349 /lib/i386-linux-gnu/libz.so.1.2.7
Program received signal SIGABRT, Aborted.
0xb7fdd424 in __kernel_vsyscall ()
Al empezar:
*** glibc detected *** /home/ezequiel/Escritorio/SDL/Barajas/Juego: free(): invalid next size (fast): 0x0809de08 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb7cd6ee2]
/usr/lib/i386-linux-gnu/libX11.so.6(+0x39449)[0xb79ed449]
/usr/lib/i386-linux-gnu/libX11.so.6(_XReply+0x211)[0xb79ee7e1]
/usr/lib/i386-linux-gnu/libX11.so.6(XQueryExtension+0xa4)[0xb79e3a34]
/usr/lib/i386-linux-gnu/libX11.so.6(XInitExtension+0x4a)[0xb79d795a]
/usr/lib/i386-linux-gnu/libXext.so.6(XextAddDisplay+0x54)[0xb79aeb14]
/usr/lib/i386-linux-gnu/libXext.so.6(+0xc52e)[0xb79ae52e]
/usr/lib/i386-linux-gnu/libXext.so.6(+0xc875)[0xb79ae875]
/usr/lib/i386-linux-gnu/libXext.so.6(XextAddDisplay+0x286)[0xb79aed46]
/usr/lib/i386-linux-gnu/libXext.so.6(+0x777e)[0xb79a977e]
/usr/lib/i386-linux-gnu/libXext.so.6(XShmPutImage+0x21)[0xb79aa011]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(+0x3c731)[0xb7f6d731]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_UpdateRects+0x1fe)[0xb7f5fa3e]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_UpdateRect+0x99)[0xb7f5fbb9]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_Flip+0x64)[0xb7f5fe84]
/home/ezequiel/Escritorio/SDL/Barajas/Juego[0x8048f41]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb7c7a4d3]
/home/ezequiel/Escritorio/SDL/Barajas/Juego[0x8048b91]
======= Memory map: ========
08048000-0804b000 r-xp 00000000 08:01 276286 /home/ezequiel/Escritorio/SDL/Barajas/Juego
0804b000-0804c000 r--p 00002000 08:01 276286 /home/ezequiel/Escritorio/SDL/Barajas/Juego
0804c000-0804d000 rw-p 00003000 08:01 276286 /home/ezequiel/Escritorio/SDL/Barajas/Juego
0804d000-080dc000 rw-p 00000000 00:00 0 [heap]
b65a6000-b6c54000 rw-p 00000000 00:00 0
b6c54000-b6d92000 rw-s 00000000 00:04 16318476 /SYSV00000000 (deleted)
b6d92000-b6de9000 rw-p 00000000 00:00 0
b6e81000-b6e86000 r-xp 00000000 08:01 265349 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b6e86000-b6e87000 r--p 00004000 08:01 265349 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b6e87000-b6e88000 rw-p 00005000 08:01 265349 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b6e88000-b6e90000 r-xp 00000000 08:01 265367 /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b6e90000-b6e91000 r--p 00007000 08:01 265367 /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b6e91000-b6e92000 rw-p 00008000 08:01 265367 /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b6e92000-b6e9b000 r-xp 00000000 08:01 265341 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b6e9b000-b6e9c000 r--p 00008000 08:01 265341 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b6e9c000-b6e9d000 rw-p 00009000 08:01 265341 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b6eae000-b6eaf000 r--p 00fd4000 08:01 267231 /usr/lib/locale/locale-archive
b6eaf000-b6fe0000 r--p 00d6c000 08:01 267231 /usr/lib/locale/locale-archive
b6fe0000-b701f000 r--p 002fc000 08:01 267231 /usr/lib/locale/locale-archive
b701f000-b721f000 r--p 00000000 08:01 267231 /usr/lib/locale/locale-archive
b721f000-b7223000 rw-p 00000000 00:00 0
b7223000-b7236000 r-xp 00000000 08:01 131318 /lib/i386-linux-gnu/libresolv-2.15.so
b7236000-b7237000 r--p 00013000 08:01 131318 /lib/i386-linux-gnu/libresolv-2.15.so
b7237000-b7238000 rw-p 00014000 08:01 131318 /lib/i386-linux-gnu/libresolv-2.15.so
b7238000-b723a000 rw-p 00000000 00:00 0
b723a000-b7240000 r-xp 00000000 08:01 265803 /usr/lib/i386-linux-gnu/libogg.so.0.8.0
b7240000-b7241000 r--p 00005000 08:01 265803 /usr/lib/i386-linux-gnu/libogg.so.0.8.0
b7241000-b7242000 rw-p 00006000 08:01 265803 /usr/lib/i386-linux-gnu/libogg.so.0.8.0
b7242000-b726b000 r-xp 00000000 08:01 265968 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b726b000-b726c000 ---p 00029000 08:01 265968 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b726c000-b726d000 r--p 00029000 08:01 265968 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b726d000-b726e000 rw-p 0002a000 08:01 265968 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b726e000-b73d4000 r-xp 00000000 08:01 265970 /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b73d4000-b73e5000 r--p 00165000 08:01 265970 /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b73e5000-b73e6000 rw-p 00176000 08:01 265970 /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b73e6000-b73e7000 rw-p 00000000 00:00 0
b73e7000-b7435000 r-xp 00000000 08:01 265311 /usr/lib/i386-linux-gnu/libFLAC.so.8.2.0
b7435000-b7436000 r--p 0004e000 08:01 265311 /usr/lib/i386-linux-gnu/libFLAC.so.8.2.0
b7436000-b7437000 rw-p 0004f000 08:01 265311 /usr/lib/i386-linux-gnu/libFLAC.so.8.2.0
b7437000-b744d000 r-xp 00000000 08:01 131275 /lib/i386-linux-gnu/libnsl-2.15.so
b744d000-b744e000 r--p 00015000 08:01 131275 /lib/i386-linux-gnu/libnsl-2.15.so
b744e000-b744f000 rw-p 00016000 08:01 131275 /lib/i386-linux-gnu/libnsl-2.15.so
b744f000-b7451000 rw-p 00000000 00:00 0
b7451000-b7456000 r-xp 00000000 08:01 265345 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b7456000-b7457000 r--p 00004000 08:01 265345 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b7457000-b7458000 rw-p 00005000 08:01 265345 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b7458000-b745a000 r-xp 00000000 08:01 265334 /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b745a000-b745b000 r--p 00001000 08:01 265334 /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b745b000-b745c000 rw-p 00002000 08:01 265334 /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b745c000-b7461000 r-xp 00000000 08:01 265398 /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b7461000-b7462000 r--p 00004000 08:01 265398 /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b7462000-b7463000 rw-p 00005000 08:01 265398 /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b7463000-b7464000 rw-p 00000000 00:00 0
b7464000-b74d1000 r-xp 00000000 08:01 265894 /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b74d1000-b74d3000 r--p 0006c000 08:01 265894 /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b74d3000-b74d4000 rw-p 0006e000 08:01 265894 /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b74d4000-b74d8000 rw-p 00000000 00:00 0
b74d8000-b74e0000 r-xp 00000000 08:01 131347 /lib/i386-linux-gnu/libwrap.so.0.7.6
b74e0000-b74e1000 r--p 00007000 08:01 131347 /lib/i386-linux-gnu/libwrap.so.0.7.6
b74e1000-b74e2000 rw-p 00008000 08:01 131347 /lib/i386-linux-gnu/libwrap.so.0.7.6
b74e2000-b74ed000 r-xp 00000000 08:01 265735 /usr/lib/i386-linux-gnu/libjbig.so.0.0.0
b74ed000-b74ee000 r--p 0000a000 08:01 265735 /usr/lib/i386-linux-gnu/libjbig.so.0.0.0
b74ee000-b74f1000 rw-p 0000b000 08:01 265735 /usr/lib/i386-linux-gnu/libjbig.so.0.0.0
Program received signal SIGABRT, Aborted.
0xb7fdd424 in __kernel_vsyscall ()
Juego: malloc.c:2451: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Program received signal SIGABRT, Aborted.
0xb7fdd424 in __kernel_vsyscall ()
Creo que son todos, no entiendo mucho los errores en C++ pero creo que es un problema con malloc.