[Langage C]Trier un tableau de tableaux qsort

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!

2 réponses

  1. Contributeur
    pas tout compris.
    Comment est-ce que tu connais la taille de ton tableaux ?
    0
    1. 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
      1. Contributeur
        "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