Oyé oyé!

Me voici confronté à un problème que je n'arrive pas à résoudre.
Je dois tout simplement trier un tableau rempli de chaines de caractères, que je remplis moi-même.

Après je dois la trier par ordre alphabétique, mais il plante toujours lors de ce tri.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include<stdio.h>
 
#define NBRMOTS 3
#define LGMOT 20
 
void tri_chaine_caract(char tableau[],int tabLength, int wordLength);
 
main()
{
   char tab[NBRMOTS][LGMOT];
   int i;
   char choix;
 
   printf("encodez une série de 3 mots! \n");
 
   for(i=0;i<NBRMOTS;i++)
   {
      printf("Mot %d : ", i);
      scanf("%s", tab[i]);
   }
   do
   {
      printf("appuyez sur 'r' pour effectuer le tri \n");
      printf("appuyez sur 'q' pour quitter \n\n");
      choix=getch();
      if(choix=='q')
      abort();
      else if(choix=='r')
      {
         tri_chaine_caract(tab,NBRMOTS,LGMOT);
      }
   }
   while(choix!='q' && choix!='r');
}
 
void tri_chaine_caract(char tableau[],int tabLength, int wordLength)
{
   int i,k;
   char temp[wordLength];
 
   for(i=0;i<tabLength;i++)
   {
      k=i;
      while((k>=0) || (strcmp(tableau[k],tableau[k-1]<0)))
      {
         temp=tableau[k];
         tableau[k]=tableau[k-1];
         tableau[k-1]=temp;
         k=k-1;
      }
   }
}
Alors, si je laisse le code comme ca, il me dit "16a.c:48: error: incompatible types in assignment". ceci est pour la ligne "temp=tableau[k];"

Maintenant si je la mets en commentaire, il compile bien, mais au moment de faire le tri, il plante...


Et je ne comprends pas pq Sad

qqn saurait m'aider en cette période d'examens? ^^

Merci à vous