Posez votre question Signaler

[Langage C]Trier un tableau de tableaux qsort

sally552 - Dernière réponse le 14 oct. 2010 à 16:53
Bonjour,
J'ai une structure de données de la forme:
typedef struct{
int nbNoeuds;
int nbLiens;
int* tabDegres;
int** matriceLiens;
}GRAPH;

Le champ matriceLiens est un tableau de tableaux (tout est dynamique). Je voudrai trier ce champ par ordre décroissant de la taille des tableaux interne.
Je donne un exemple:
matriceLiens contient trois tableaux:
tableau1 a une taille = 5
tableau2 a une taille = 8
tableau3 a une taille = 6
Après le tri, je veux avoir
tableau2 - tableau3 - tableau1
Je veux utiliser qsort mais je bloque au niveau de la fonction de comparaison. J'arrive pas à la formuler. Quelqu'un peut-il m'aider?
Merci!
Lire la suite 

[Langage C]Trier un tableau de tableaux qsort »

3 réponses
Réponse
+0
moins plus
effectivement, ce n'est pas évident.
En fait, qsort appelle la fonction avec des pointeurs et un sizeof sur ces pointeurs ne donnera pas la taille du tableau auxquels ils sont associés.
la solution serait d'avoir, si possible, un élément spécial dans les tableaux eux-mêmes indiquant la "fin" du tableau.
Char Snipeur- 14 oct. 2010 à 16:53
"un sizeof sur ces pointeurs ne donnera pas la taille du tableau "
Je cris bien que non. Comme tu l'as dit, tout est dynamique, un sizeof ne donne que la taille d'un tableau statique déclarer ainsi type var[taille];.
Ajouter un commentaire
Ce document intitulé « [Langage C]Trier un tableau de tableaux qsort » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?