[Langage C]Trier un tableau de tableaux qsort

sally552 -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
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!


A voir également:

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
pas tout compris.
Comment est-ce que tu connais la taille de ton tableaux ?
0
ydurce Messages postés 78 Date d'inscription   Statut Membre Dernière intervention   18
 
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.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
"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];.
0