paxal Le 11/03/2003 à 23:39 Je voulais savoir d'ou pouvait provenir une erreur de segmentation, mais seulement quand on quitte le programme...
Uther Le 12/03/2003 à 10:52 Tu as du dans un espace memoire non reservé a un moment ou a un autre même si ca n'a pas provoqué immédiatement l'erreur.
Peut-être un "double free"? Vérifie que tu libères tes blocs alloués une et une seule fois.
kevin> dans le cas ou t'essaye de freer un bloc deja free, en general il y a un warning dans la console du genre junk pointer, too low to make sense (entre autres)
paxal> tu as possibilite d'utiliser gdb?
et comme a dit uther, ca vient uniquement du fait que t'as essaye de lire/ecrire dans un espace qui n'est pas a toi (merci mmu)
ca peut etre une boucle qui va trop loin, comme un pointeur foireux, comme essayer d'ecrire dans une zone pas malloc ou deja free, etc...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960
*** Ne sous-estimez pas la puissance de la Marmotte ***
©
Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina
Pas étonnant que ça ne marche pas! Tu fais un scanf dans le vide! Initialise s!!!
paxal Le 12/03/2003 à 23:57Edité par paxal le 12/03/2003 à 23:58 ah? et comment?.
s = (char*) malloc(n)?
paxal Le 13/03/2003 à 00:02 ok, pour lire bloc par bloc... bon dans mon cas un malloc(n) suffira!
paxal Le 13/03/2003 à 07:35 bah a priori il y aura plein d'espaces, et moi je m'arrete dès que je vois tous les caractères qui sont passés. Et dans mon cas, en fait, on suppose que l'utilisateur ne se trompe jamais.
paxal Le 13/03/2003 à 22:47 bah c'est un programme qui ne fait qu'executer une ligne de commande... Il fait une fois qu'il a tout.