et delete[] [résolut]problème avec char** new[] - C++ - Programmation
Marsh Posté le 24-02-2014 à 21:11:51
Bonsoir !
Avez-vous bien alloué tous les éléments du tableau phrase ? Cela n'apparaît pas dans votre code.
Si vous voulez corriger votre code, utilisez valgrind pour vous aider à trouver la source de l'erreur mémoire.
Sinon, vous pouvez aussi utiliser un std::vector < std::string> et vous n'avez plus à vous soucier des pointeurs
Voire des pointeurs évolués de la STL, mais je reconnais que c'est moins formateur.
Bonne continuation !
Marsh Posté le 24-02-2014 à 21:28:06
effectivement il me manque la ligne:
phrase[wordNb]=mot;
après les déclarations de mot
mon but est la formation effectivement, je vais voir valgrind, je ne connaissait pas.
Merci pour nom
Marsh Posté le 24-02-2014 à 21:31:21
voila ce que l'a répondu valgrind:
--8126-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting
--8126-- si_code=1; Faulting address: 0x13443168; sp: 0x402b1ade0
valgrind: the 'impossible' happened:
Killed by fatal signal
==8126== at 0x38063BB6: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==8126== by 0x3802B33C: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==8126== by 0x3802B565: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==8126== by 0x3809D58D: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==8126== by 0x380AC14C: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
sched status:
running_tid=1
Thread 1: status = VgTs_Runnable
==8126== at 0x4C2AFE7: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8126== by 0x4086AF: Splitter::Splitter(char const*, char) (Splitter.cpp:28)
==8126== by 0x4054D0: Object::load(std::string) (Object.cpp:56)
==8126== by 0x405313: Object::Object(std::string, std::string, std::string, std::string) (Object.cpp:29)
==8126== by 0x40681C: Scene::bouclePrincipale() (Scene.cpp:181)
==8126== by 0x405152: main (main.cpp:25)
ce qui est étrange c'est que parfois ca marche parfois non
Marsh Posté le 24-02-2014 à 23:22:29
liffaen a écrit : ce qui est étrange c'est que parfois ca marche parfois non |
Bienvenue dans le monde des comportements non-définis (undefined behaviour), le pire qui puisse arriver c'est que ça fonctionne. Parce que ça te donne l'illusion que tout fonctionne, jusqu'au beau jour ou le programme va se planter comme un malpropre. Là tu as le mauvais programmeur, qui va blamer la machine de l'utilisateur et tu as le bon programmeur, qui va vérifier son code.
A vu de nez, ton problème sent très très fort l'écriture en dehors d'une zone mémoire allouée (buffer overflow). valgrind est sensé être assez compétent pour trouver l'origine de ce problème, mais apparemment tu as réussi l'exploit de faire planter valgrind .
À tout hasard et si ce n'est pas trop long, tu devrais poster les parties marquées comme "du code inutile".
Allez une petite anecdocte qui m'est arrivé il y a quelques mois: un client avait appellé le support parce qu'un logiciel que j'avais développé ne se lançait plus sur son poste. Quand on a regardé la date d'installation, la dernière mise à jour remontait à plus de 5 ans. La version en question contenait un buffer overflow à la con, corrigé quelques semaines après la version installée chez le client. Pendant 5 ans, ce logiciel a fonctionné sans le moindre problème, jusqu'à une mise à jour de Windows qui l'a fait planté systèmatiquement
Marsh Posté le 25-02-2014 à 01:43:07
Bien sur voila le code complet:
Code :
|
Marsh Posté le 25-02-2014 à 12:45:46
Mais pourquoi faire du C déguisé sous des habits C++ alors que les librairies standard C++ font déjà cela gratuitement?
Si on veut un (ou plusieurs) délimiteurs qui scindent une chaîne en tokens, ça se fait au niveau des character facets.
Et les containers standard sont la pour qu'on les utilise.
Code :
|
donne en sortie:
hello |
et en ajoutant
rc[' '] = ctype_base::space;
dans get_table
on a en sortie
hello |
Et si de plus on veut profiter des facilités du C++ moderne (ie C++ 11) pour avoir plus de flexibilité dans la construction de la facette, avec une liste de caractères:
Code :
|
A+,
Marsh Posté le 25-02-2014 à 19:23:28
bon solution trouvé,
en gros le pb c'est les cas limites c'est a dire:
- aucun mot ---> phrase non allouée --> ne pas détruire
- si la chaîne est finie sans le séparateur, le dernier
mot est-il bien pris en compte ?
voila voila,
un grand merci a ceux qui m'ont aidé
Liffaen
Marsh Posté le 24-02-2014 à 20:51:54
Bonjour,
après de longues séries de test j'ai un problème avec mon code de splitter au niveau des deletes
j'ai donc une structure mémoire tel que:
phrase --------- mot
|----- mot
|----- mot
et tout a été alloué dynamiquement pour être accessible de l’extérieur.
parfois et je dit bien parfois sur le même fichier test lorsque je Split ligne par ligne j'obtient une erreur du style:
*** Error in `/home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme': free(): invalid next size (fast): 0x0000000001470850 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x80996)[0x7fbd3ddd0996]
/home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme[0x4088bc]
/home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme[0x405555]
/home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme[0x405314]
/home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme[0x40681d]
/home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme[0x405153]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fbd3dd71de5]
/home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme[0x402389]
======= Memory map: ========
00400000-0040d000 r-xp 00000000 08:06 2885896 /home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme
0060c000-0060d000 r--p 0000c000 08:06 2885896 /home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme
0060d000-0060e000 rw-p 0000d000 08:06 2885896 /home/morgan/Bureau/game dev/Polyphème/bin/Debug/Polypheme
013a0000-017c3000 rw-p 00000000 00:00 0 [heap]
41838000-418d5000 rw-p 00000000 00:00 0
419be000-419c0000 r-xs 00000000 08:06 1311858 /tmp/gl03OqxZ (deleted)
7fbd390d2000-7fbd392d2000 rw-s 1d9727000 00:05 13731 /dev/nvidia0
7fbd392d2000-7fbd393d3000 rw-p 00000000 00:00 0
7fbd393d3000-7fbd3940c000 r-xp 00000000 08:06 1848645 /usr/local/lib/libjpeg.so.8.4.0
7fbd3940c000-7fbd3960c000 ---p 00039000 08:06 1848645 /usr/local/lib/libjpeg.so.8.4.0
7fbd3960c000-7fbd3960d000 r--p 00039000 08:06 1848645 /usr/local/lib/libjpeg.so.8.4.0
7fbd3960d000-7fbd3960e000 rw-p 0003a000 08:06 1848645 /usr/local/lib/libjpeg.so.8.4.0
7fbd3960e000-7fbd39613000 r-xp 00000000 08:06 1709119 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fbd39613000-7fbd39812000 ---p 00005000 08:06 1709119 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fbd39812000-7fbd39813000 r--p 00004000 08:06 1709119 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fbd39813000-7fbd39814000 rw-p 00005000 08:06 1709119 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fbd39814000-7fbd3981d000 r-xp 00000000 08:06 1711740 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7fbd3981d000-7fbd39a1c000 ---p 00009000 08:06 1711740 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7fbd39a1c000-7fbd39a1d000 r--p 00008000 08:06 1711740 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7fbd39a1d000-7fbd39a1e000 rw-p 00009000 08:06 1711740 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7fbd39a1e000-7fbd39a27000 r-xp 00000000 08:06 1705030 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7fbd39a27000-7fbd39c26000 ---p 00009000 08:06 1705030 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7fbd39c26000-7fbd39c27000 r--p 00008000 08:06 1705030 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7fbd39c27000-7fbd39c28000 rw-p 00009000 08:06 1705030 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7fbd39c28000-7fbd39e28000 rw-s 1e0f9a000 00:05 13731 /dev/nvidia0
7fbd39e28000-7fbd3a028000 rw-s 1d2166000 00:05 13731 /dev/nvidia0
7fbd3a028000-7fbd3a228000 rw-s 1d2111000 00:05 13731 /dev/nvidia0
7fbd3a228000-7fbd3a328000 rw-s 1a0188000 00:05 13731 /dev/nvidia0
7fbd3a328000-7fbd3a348000 rw-s e80a0000 00:05 13731 /dev/nvidia0
7fbd3a348000-7fbd3a388000 rw-s 1dc51d000 00:05 13731 /dev/nvidia0
7fbd3a388000-7fbd3a3a8000 rw-s 1e0d48000 00:05 13731 /dev/nvidia0
7fbd3a3a8000-7fbd3a460000 rw-p 00000000 00:00 0
7fbd3a460000-7fbd3a464000 r-xp 00000000 08:06 1705801 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0
7fbd3a464000-7fbd3a664000 ---p 00004000 08:06 1705801 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0
7fbd3a664000-7fbd3a665000 r--p 00004000 08:06 1705801 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0
7fbd3a665000-7fbd3a666000 rw-p 00005000 08:06 1705801 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0
7fbd3a666000-7fbd3a66b000 r-xp 00000000 08:06 1711747 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fbd3a66b000-7fbd3a86a000 ---p 00005000 08:06 1711747 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fbd3a86a000-7fbd3a86b000 r--p 00004000 08:06 1711747 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fbd3a86b000-7fbd3a86c000 rw-p 00005000 08:06 1711747 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fbd3a86c000-7fbd3a86e000 r-xp 00000000 08:06 1705078 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7fbd3a86e000-7fbd3aa6e000 ---p 00002000 08:06 1705078 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7fbd3aa6e000-7fbd3aa6f000 r--p 00002000 08:06 1705078 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7fbd3aa6f000-7fbd3aa70000 rw-p 00003000 08:06 1705078 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7fbd3aa70000-7fbd3aa8d000 r-xp 00000000 08:06 1704479 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7fbd3aa8d000-7fbd3ac8c000 ---p 0001d000 08:06 1704479 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7fbd3ac8c000-7fbd3ac8d000 r--p 0001c000 08:06 1704479 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7fbd3ac8d000-7fbd3ac8e000 rw-p 0001d000 08:06 1704479 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7fbd3ac8e000-7fbd3ac9f000 r-xp 00000000 08:06 1705797 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7fbd3ac9f000-7fbd3ae9e000 ---p 00011000 08:06 1705797 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7fbd3ae9e000-7fbd3ae9f000 r--p 00010000 08:06 1705797 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7fbd3ae9f000-7fbd3aea0000 rw-p 00011000 08:06 1705797 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7fbd3aea0000-7fbd3afd0000 r-xp 00000000 08:06 1704902 /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7fbd3afd0000-7fbd3b1d0000 ---p 00130000 08:06 1704902 /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7fbd3b1d0000-7fbd3b1d1000 r--p 00130000 08:06 1704902 /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7fbd3b1d1000-7fbd3b1d5000 rw-p 00131000 08:06 1704902 /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7fbd3b1d5000-7fbd3cc1c000 r-xp 00000000 08:06 1721649 /usr/lib/nvidia-319/libnvidia-glcore.so.319.32
7fbd3cc1c000-7fbd3ce1c000 ---p 01a47000 08:06 1721649 /usr/lib/nvidia-319/libnvidia-glcore.so.319.32
7fbd3ce1c000-7fbd3d713000 rwxp 01a47000 08:06 1721649 /usr/lib/nvidia-319/libnvidia-glcore.so.319.32
7fbd3d713000-7fbd3d72c000 rwxp 00000000 00:00 0
7fbd3d72c000-7fbd3d72f000 r-xp 00000000 08:06 1721644 /usr/lib/nvidia-319/tls/libnvidia-tls.so.319.32
7fbd3d72f000-7fbd3d92e000 ---p 00003000 08:06 1721644 /usr/lib/nvidia-319/tls/libnvidia-tls.so.319.32
7fbd3d92e000-7fbd3d92f000 rw-p 00002000 08:06 1721644 /usr/lib/nvidia-319/tls/libnvidia-tls.so.319.32
7fbd3d92f000-7fbd3d946000 r-xp 00000000 08:06 393545 /lib/x86_64-linux-gnu/libpthread-2.17.so
7fbd3d946000-7fbd3db46000 ---p 00017000 08:06 393545 /lib/x86_64-linux-gnu/libpthread-2.17.so
7fbd3db46000-7fbd3db47000 r--p 00017000 08:06 393545 /lib/x86_64-linux-gnu/libpthread-2.17.so
7fbd3db47000-7fbd3db48000 rw-p 00018000 08:06 393545 /lib/x86_64-linux-gnu/libpthread-2.17.so
7fbd3db48000-7fbd3db4c000 rw-p 00000000 00:00 0
7fbd3db4c000-7fbd3db4f000 r-xp 00000000 08:06 393544 /lib/x86_64-linux-gnu/libdl-2.17.so
7fbd3db4f000-7fbd3dd4e000 ---p 00003000 08:06 393544 /lib/x86_64-linux-gnu/libdl-2.17.so
7fbd3dd4e000-7fbd3dd4f000 r--p 00002000 08:06 393544 /lib/x86_64-linux-gnu/libdl-2.17.so
7fbd3dd4f000-7fbd3dd50000 rw-p 00003000 08:06 393544 /lib/x86_64-linux-gnu/libdl-2.17.so
7fbd3dd50000-7fbd3df0d000 r-xp 00000000 08:06 393543 /lib/x86_64-linux-gnu/libc-2.17.so
7fbd3df0d000-7fbd3e10d000 ---p 001bd000 08:06 393543 /lib/x86_64-linux-gnu/libc-2.17.so
7fbd3e10d000-7fbd3e111000 r--p 001bd000 08:06 393543 /lib/x86_64-linux-gnu/libc-2.17.so
7fbd3e111000-7fbd3e113000 rw-p 001c1000 08:06 393543 /lib/x86_64-linux-gnu/libc-2.17.so
7fbd3e113000-7fbd3e118000 rw-p 00000000 00:00 0
7fbd3e118000-7fbd3e12d000 r-xp 00000000 08:06 393393 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fbd3e12d000-7fbd3e32c000 ---p 00015000 08:06 393393 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fbd3e32c000-7fbd3e32d000 r--p 00014000 08:06 393393 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fbd3e32d000-7fbd3e32e000 rw-p 00015000 08:06 393393 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fbd3e32e000-7fbd3e431000 r-xp 00000000 08:06 393529 /lib/x86_64-linux-gnu/libm-2.17.so
7fbd3e431000-7fbd3e630000 ---p 00103000 08:06 393529 /lib/x86_64-linux-gnu/libm-2.17.so
7fbd3e630000-7fbd3e631000 r--p 00102000 08:06 393529 /lib/x86_64-linux-gnu/libm-2.17.so
7fbd3e631000-7fbd3e632000 rw-p 00103000 08:06 393529 /lib/x86_64-linux-gnu/libm-2.17.so
7fbd3e632000-7fbd3e718000 r-xp 00000000 08:06 1708218 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18
7fbd3e718000-7fbd3e917000 ---p 000e6000 08:06 1708218 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18
7fbd3e917000-7fbd3e91f000 r--p 000e5000 08:06 1708218 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18
7fbd3e91f000-7fbd3e921000 rw-p 000ed000 08:06 1708218 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18
7fbd3e921000-7fbd3e936000 rw-p 00000000 00:00 0
7fbd3e936000-7fbd3e943000 r-xp 00000000 08:06 1850424 /usr/local/lib/libSDL2_image-1.2.so.0.8.5
7fbd3e943000-7fbd3eb42000 ---p 0000d000 08:06 1850424 /usr/local/lib/libSDL2_image-1.2.so.0.8.5
7fbd3eb42000-7fbd3eb43000 r--p 0000c000 08:06 1850424 /usr/local/lib/libSDL2_image-1.2.so.0.8.5
7fbd3eb43000-7fbd3eb44000 rw-p 0000d000 08:06 1850424 /usr/local/lib/libSDL2_image-1.2.so.0.8.5
7fbd3eb44000-7fbd3eb54000 rw-p 00000000 00:00 0
7fbd3eb54000-7fbd3ec2e000 r-xp 00000000 08:06 1721648 /usr/lib/nvidia-319/libGL.so.319.32
7fbd3ec2e000-7fbd3ee2d000 ---p 000da000 08:06 1721648 /usr/lib/nvidia-319/libGL.so.319.32
7fbd3ee2d000-7fbd3ee6c000 rwxp 000d9000 08:06 1721648 /usr/lib/nvidia-319/libGL.so.319.32
7fbd3ee6c000-7fbd3ee82000 rwxp 00000000 00:00 0
7fbd3ee82000-7fbd3ef57000 r-xp 00000000 08:06 1836396 /usr/local/lib/libSDL2-2.0.so.0.0.0
7fbd3ef57000-7fbd3f157000 ---p 000d5000 08:06 1836396 /usr/local/lib/libSDL2-2.0.so.0.0.0
7fbd3f157000-7fbd3f15a000 r--p 000d5000 08:06 1836396 /usr/local/lib/libSDL2-2.0.so.0.0.0
7fbd3f15a000-7fbd3f165000 rw-p 000d8000 08:06 1836396 /usr/local/lib/libSDL2-2.0.so.0.0.0
7fbd3f165000-7fbd3f168000 rw-p 00000000 00:00 0
7fbd3f168000-7fbd3f178000 r-xp 00000000 08:06 393532 /lib/x86_64-linux-gnu/ld-2.17.so
7fbd3f178000-7fbd3f179000 r-xp 00010000 08:06 393532 /lib/x86_64-linux-gnu/ld-2.17.so
7fbd3f179000-7fbd3f18b000 r-xp 00011000 08:06 393532 /lib/x86_64-linux-gnu/ld-2.17.so
7fbd3f195000-7fbd3f197000 rw-p 00000000 00:00 0
7fbd3f199000-7fbd3f1a0000 rw-s 1dc74b000 00:05 13731 /dev/nvidia0
7fbd3f1a0000-7fbd3f1a4000 rw-s 1d23f8000 00:05 13731 /dev/nvidia0
7fbd3f1a4000-7fbd3f1e4000 rw-s 1d95f8000 00:05 13731 /dev/nvidia0
7fbd3f1e4000-7fbd3f204000 rw-s 1dc7f7000 00:05 13731 /dev/nvidia0
7fbd3f2c2000-7fbd3f2c4000 rw-p 00000000 00:00 0
7fbd3f2c4000-7fbd3f2c6000 rw-s 00000000 08:06 1311858 /tmp/gl03OqxZ (deleted)
7fbd3f2c6000-7fbd3f2cd000 r--s 00000000 08:06 2109333 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7fbd3f2cd000-7fbd3f2e2000 rw-s 1fe44e000 00:05 13731 /dev/nvidia0
7fbd3f2e2000-7fbd3f36c000 rw-p 00000000 00:00 0
7fbd3f36c000-7fbd3f36d000 rw-s 19e08c000 00:05 13731 /dev/nvidia0
7fbd3f36d000-7fbd3f36e000 rw-s efd60000 00:05 13731 /dev/nvidia0
7fbd3f36e000-7fbd3f36f000 rw-s efd60000 00:05 13731 /dev/nvidia0
7fbd3f36f000-7fbd3f370000 rw-s f6642000 00:05 13731 /dev/nvidia0
7fbd3f370000-7fbd3f371000 rw-s 1f4802000 00:05 13731 /dev/nvidia0
7fbd3f371000-7fbd3f372000 rw-s f6641000 00:05 13731 /dev/nvidia0
7fbd3f372000-7fbd3f373000 rw-s 1fcd35000 00:05 13731 /dev/nvidia0
7fbd3f373000-7fbd3f374000 rw-s 1bd849000 00:05 13731 /dev/nvidia0
7fbd3f374000-7fbd3f375000 rw-s f6060000 00:05 13731 /dev/nvidia0
7fbd3f375000-7fbd3f38a000 rw-p 00000000 00:00 0
7fbd3f38a000-7fbd3f38b000 r--p 00022000 08:06 393532 /lib/x86_64-linux-gnu/ld-2.17.so
7fbd3f38b000-7fbd3f38d000 rw-p 00023000 08:06 393532 /lib/x86_64-linux-gnu/ld-2.17
où ici 0x0000000001470850 est bien l'adresse que l'on essai de delete et qui a bien été crée avant
si vous avez des idées?
Merci d'avance,
Liffaen
Message édité par liffaen le 25-02-2014 à 19:24:42