|
|
|
|
Bonsoir,
Je rencontre des problèmes avec un tri rapide de tableau de pointeur. Pour le moment sa compile mais le programme plante. Pourquoi a votre avi ?
PS: les variables qui manque sont des varariables globales. Avez vous besion de plus de code pour m'aider ?
MERCI
/*void tri(nb)
{
tri_bis(0,nb-1);
}
void tri_bis(int debut, int fin)
{
int pivot;
if (debut < fin)
{
pivot = placement_pivot(debut, fin);
tri_bis (debut, pivot-1);
tri_bis (pivot+1, fin);
}
}
int placement_pivot(int debut, int fin)
{
int compteur = debut;
int pivot = table[debut];
int i;//indice
for (i=debut+1; i<=fin; i++)
{
if (strcmp (table[i], table[pivot]) < 0)//test de la valeur de ligne
{
pivot=i;
strcpy (buf, table[compteur] );//echange des indices
strcpy (table[compteur], table[pivot]);
strcpy (table[pivot], buf);
}
strcpy (buf, table[debut] );//echange des indices
strcpy (table[compteur], table[debut]);
strcpy (table[compteur], buf);
return(compteur);
}
}
Ben oui il faut tout le code concernant le tri sinon on ne peut pas t'aider. Ceci dit pourquoi ne pas tout simplement utiliser la fonction qsort ?
|
Je n'est pas le droit d'utiliser la fonction (devoir scolaire) voici mon programme (attention bug switch / case voir mon aurtre poste) :
|
Dans l'immédiat je n'ai pas le temps de débugger et de rentrer dans ton code, mais dans un premier jet tu peux localiser ou ça plante avec un debugger. Sous linux ça consiste à compiler avec l'option -g :
gcc -W -Wall -g -o plop.exe plop.c Ensuite si ton exécutable s'appelle plop.exe et prends les paramètre arg1 arg2 arg3. Tape : gdb plop.exe r arg1 arg2 arg3 gdb lance le programme et plante. Il suffit d'afficher la pile pour voir exactement ou tu plante : bt Partant de là détermine pourquoi une segfault se déclenche. Classiquement c'est soit que tu as débordé de la zone allouée pour ta variable, soit que celle-ci n'est carrément pas allouée. De fil en aiguille tu devrais arriver à retrouver ce qui ne va pas. Bonne chance |
Bah tu mets l'extension que tu veux tu t'en fiche c'est un binaire. Depuis quand les extensions auraient une importance sur le contenu d'un fichier ? D'ailleurs quand on regarde cygwin les commandes linux sont en fait des exe... C'est vraiment une histoire de notation mais au final ça n'a pas vraiment d'importance tu mets le nom qui t'arrange. |