Bonjour je dois ecrire un code qui a partir d'un fichier texte repertorie les mots dans un tableau, mais voila le programme plante a la fin lorsque je veux afficher tout les mots dans la derniere boucle, je ne vois vraiment pas pourquoi
merci d'avance

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
53
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define DELIMITERS    " \r\n\t!@#$%^&*()_+={}|\\:\"'?¿/.,<>’¡;º×÷‘"
 
main()
{
     int nbrLignes = 0;
     FILE * fichier = NULL;
     char * buffer = (char *) calloc(10 ,sizeof(char));
     char temp[10] = "";
 
     if((fichier = fopen("test.txt", "w")) != NULL )
     {
        fputs("le@test;a\nreussi!",fichier);
        fclose(fichier);
     }
 
     if((fichier = fopen("test.txt", "r")) != NULL)
     {
         /* Chargement du fichier en memoire */
         while(fgets(temp, 10, fichier) != NULL)
         {
            nbrLignes++;
            buffer = (char *) realloc(buffer, 10 * nbrLignes * sizeof(char));
            strcat(buffer, temp);
         }
         int nbrMots = 0;
         char ** T_MOTS = (char **) malloc(sizeof(char*));
 
         /* Decoupage de la chaine en mots */
         printf("%s\n",buffer);
         char * token = strtok(buffer, DELIMITERS);
         while(token != NULL)
         {
              nbrMots++;
              T_MOTS = (char **) realloc(T_MOTS, nbrMots * sizeof(char *));
              T_MOTS[nbrMots] = (char *) malloc(28 * sizeof(char));
              strcpy(T_MOTS[nbrMots],token);
              printf("%s\n",T_MOTS[nbrMots]);
              token = strtok(NULL, DELIMITERS);
         }
         int i;
          for(i = 0 ;i < nbrMots - 1;i ++)
            {
                printf("%s\n",T_MOTS[i]);;
            }
         fclose(fichier);
     }
     return 0;
}