CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

pb avec qsort

buz-l-orage
buz-l-orage
Niveau 10
31 octobre 2003 à 21:44:20

salut a vs
voila en faire tt est ds le titre, j´ai un souci avec qsort

voila comment je l´utilise:
qsort(tab,d,sizeof(char*),comp_char);

et voila ma fonction comp_char
int comp_char(const void *mot1,const void *mot2)
{
char *a,*b;

strcpy(a, *(char **) mot1);
strcpy(b, *(char **) mot2);

return strcmp(a,b);
}

et mon tableau-> tab[50][10] ( pour tester)
pas de pb lors de la compilation, mais pdt l´execution j´ai une jolie segmentation fault, ca vient du qsort ( si je le passe en commentaire, j´ai pa de pb...)

si vs pouvez m´aider...merci bcp :)

ps: vraiment pas certain, de ma fonction de comparaison, ni du sizeof(char *) si vs pouvez me corriger et m´expliquer surtout ce serai sympa :) merci encore

protheus
protheus
Niveau 10
31 octobre 2003 à 23:38:41

Le problème vient d´ici :

char *a;
strcpy(a,toto);

dans ce cas, il faut que a soit d´abord alloué, puis seulement ensuite tu peux appeler strcpy()
Là, t´essayes de copier toto dans un truc vide.

De toute façon, strcpy() dans une fonction de comparaison, c´est vraiment pas la bonne méthode : strcpy est une opération parmi les plus longues ( avec printf et scanf), donc si tu veux faire un " Quick Sort", faut pas utiliser çà. En plus, dans ton pb, un simple strcmp(*(char **)mot1,*(char **)mot2) suffit.

JeanYvesYves
JeanYvesYves
Niveau 10
04 novembre 2003 à 16:29:17

Lol, on voit les grugeurs de TP d´algo du Nautibus, non mais :)

--> utilise qsort :)

buz-l-orage
buz-l-orage
Niveau 10
04 novembre 2003 à 19:26:56

int comp_char(const void *mot1,const void *mot2)
{
return strcmp(*(char**)mot1,*(char**)mot2);
}

par contre mon erreur venait du fait ke j´utilisais char tab[x][y] pour initialiser alors qu´il faut passer par char **tab puis malloc(...) enfin voila maintenant ca fonctionne :)
( ils se rendent pa compte de ce qu´ils nous demandent...je sais pa si t´as vu les sujets de ter proposé en licence...mais c´est vraiment grave pour les 8 que j´ai vu lol)

http://www710.univ-lyon1.fr/%7Ejciehl/Public/ter/

JeanYvesYves
JeanYvesYves
Niveau 10
06 novembre 2003 à 22:35:23

Et beh vous etes la pour en baver :) mais ça en vaut le coup !

Pour ma part, en licence, j´avais un TER dans lequel je devais simuler une explosion en 3D , en petites particules sphériques. J´avais déja le moteur 3D par RayTracing fourni.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment