[Langage C]Trier un tableau de tableaux qsort

Fermé
sally552 - 14 oct. 2010 à 12:45
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 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!


A voir également:

2 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
14 oct. 2010 à 15:28
pas tout compris.
Comment est-ce que tu connais la taille de ton tableaux ?
0
ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
14 oct. 2010 à 15:59
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 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
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];.
0