Bonjour tout le monde,

J'aurais besoin de votre aide pour me dire pourquoi ça ne s' exécute pas ! (dès que je tape une phrase... Ensuite ça ne marche pas pour la suite)

L’énoncé de l'exo :

Soit une phrase contenant des mots séparés par un seul blanc. Écrire le programme qui sauvegarde les mots de la phrase dans un tableau de chaînes de caractères (matrice).
(J'ai utilisé l'allocation dynamique). Voici le programme :

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
54
55
56
57
58
59
60
61
62
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<malloc.h>
 
 
 
 
 
 
 
 
main()
 
 
{ int n=20; char t[n], mo[30], y,**a, *x;
  int cpt,mot,j,i,k,m,taille,cmot;
 
  {  printf(" donner une phrase qui se termine par un point\n");
      scanf("%s",&t);
 
    i=0; cpt=0;
         {do
       if (t[i]==' ')
       cpt= cpt +1;
 
      while ((t[i]!='.') && (i<n) ); i++;}
      mot= cpt+1; 
 
    {printf(" le nbr de mot dans cette phrase est: %d", mot); } 
 
 
                                    // Ranger chaque mot trouvé dans un vecteur mo
  { for ( m=0; m<taille; m++)
    { for(i=0; i<taille; i++)
       mo[m]=t[i]; } }             // t affecte le mot trouvé dans mo
            a[j]= mo  ;
 
              // ALLOCATION de l'espace pour les elments de la matrice
x = (char*) malloc (mot*taille*sizeof(char));
 
  // faire le lien entre le vecteur d'@ a et l'espace memoire de elements
  for( i=0; i<mot; i++)
 a[i]= x + i*taille;
 
 
            i= taille+2;
            taille=0;          // mo affecte le mot dans le vecteur de mots qui pointera sur la matrice
 
   while ( t[i]!='.'); i++; 
 
 
 
 
 
 
 
 
 
getch();
} 
}
_____________________________________

Merci d'avance.