Programmation en C du problème à 3 corps

Fermé
Fabinou - 14 févr. 2008 à 21:05
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 14 févr. 2008 à 21:45
Bonjour,
je suis actuellement sur un projet où je dois tracer la trajectoire de la chute d'un astéroide sur la Terre.
(J'utilise fedora Core 6 et kwrite pour le logiciel)
Pour la chute d'un astéroide en présence de la terre seulement, c'est très facile, j'obtient une belle chute avec mon tracé gnuplot.

La où j'ai des soucis, c'est qu'on m'a demandé de programmer de manière générale le problème de l'intéraction à trois corps pour pouvoir ensuite l'adapter au système terre-lune-astéroide.
J'ai tout programmé, corrigé les quelques erreurs, et voila le résultat de la compilation:

glibc detected *** ./a.out: free(): invalid next size (fast): 0x08af8458 ***
======= Backtrace: =========
/lib/libc.so.6[0xc7ca96]
/lib/libc.so.6(cfree+0x90)[0xc7ffb0]
./a.out[0x8049afa]
./a.out[0x80492f3]
/lib/libc.so.6(__libc_start_main+0xdc)[0xc2bdec]
./a.out(__gxx_personality_v0+0x59)[0x8048901]
======= Memory map: ========
00110000-00111000 r-xp 00110000 00:00 0 [vdso]
00111000-00112000 rwxp 00111000 00:00 0
00129000-0012b000 rwxp 00129000 00:00 0
00302000-0030d000 r-xp 00000000 fd:00 1051166 /lib/libgcc_s-4.1.2-20070626.so.1
0030d000-0030e000 rwxp 0000a000 fd:00 1051166 /lib/libgcc_s-4.1.2-20070626.so.1
00310000-003f0000 r-xp 00000000 fd:00 1252458 /usr/lib/libstdc++.so.6.0.8
003f0000-003f4000 r-xp 000df000 fd:00 1252458 /usr/lib/libstdc++.so.6.0.8
003f4000-003f5000 rwxp 000e3000 fd:00 1252458 /usr/lib/libstdc++.so.6.0.8
003f5000-003fb000 rwxp 003f5000 00:00 0
00bf9000-00c12000 r-xp 00000000 fd:00 1048615 /lib/ld-2.5.so
00c12000-00c13000 r-xp 00019000 fd:00 1048615 /lib/ld-2.5.so
00c13000-00c14000 rwxp 0001a000 fd:00 1048615 /lib/ld-2.5.so
00c16000-00d50000 r-xp 00000000 fd:00 1048617 /lib/libc-2.5.so
00d50000-00d52000 r-xp 0013a000 fd:00 1048617 /lib/libc-2.5.so
00d52000-00d53000 rwxp 0013c000 fd:00 1048617 /lib/libc-2.5.so
00d53000-00d56000 rwxp 00d53000 00:00 0
00d58000-00d7d000 r-xp 00000000 fd:00 1048816 /lib/libm-2.5.so
00d7d000-00d7e000 r-xp 00024000 fd:00 1048816 /lib/libm-2.5.so
00d7e000-00d7f000 rwxp 00025000 fd:00 1048816 /lib/libm-2.5.so
08048000-0804b000 r-xp 00000000 fd:00 460055 /home/fabien/C_projet_080208/a.out
0804b000-0804c000 rwxp 00002000 fd:00 460055 /home/fabien/C_projet_080208/a.out
08ad1000-08b13000 rwxp 08ad1000 00:00 0
b7e00000-b7e21000 rwxp b7e00000 00:00 0
b7e21000-b7f00000 --xp b7e21000 00:00 0
bfea1000-bfeb6000 rwxp bfea1000 00:00 0 [stack]
/home/fabien/bin/ccc: line 1: 3934 Abandon ./a.out



Je reste assez perplexe devant un tel message. Si ce n'est pas votre cas, j'attend votre réponse avec impatience et vous remercie d'avance.;)
A voir également:

1 réponse

Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
14 févr. 2008 à 21:45
Bonjour,

Les gens qui ont ce genre de message l'obtiennent lors de l'exécution de leur programme et cela semble du à un écrasement de mémoire suite à un dépassement de tableau.

C'est bien à la compilation que ton bug intervient ?

M.

EDIT.
Pour faire des tests rapides, (et toujours dans l'idée que c'est bien à l'exécution) il faudrait:
- tester sans les delete (Oui c'est maaal)
- tester l'allocation - désallocation sans code entre les deux.
0