[Langage C]Trier un tableau de tableaux qsort
Bonjour,
J'ai une structure de données de la forme:
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!
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!
2 réponses
-
Contributeurpas tout compris.
Comment est-ce que tu connais la taille de ton tableaux ? -
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.