[ERROR] Insertion de message dans tab de char ?

Insertion de message dans tab de char ? [ERROR] - C - Programmation

Marsh Posté le 20-09-2015 à 21:14:55    

J'essaie de faire un petit programme qui enregistre des messages
de manière dynamique.
Mais cela coince au niveau de l'insertion des messages dans mon tableau j'ai l'impression.
 
Any idea?
 
Merci pour toute aide apportée!  
 

Code :
  1. /*******MAIN***********/
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include "F1.h"
  5. #include "F1.c"
  6. #include <string.h>
  7. /*
  8. *  
  9. */
  10. int main(int argc, char** argv) {
  11.    
  12.     int dNbrmessage;
  13.     //nbre de messages à lire
  14.    
  15.     int dI;
  16.     //iterateur
  17.    
  18.     char *pMsg = NULL;
  19.     //message du user
  20.    
  21.     char **tTableau;
  22.     //tableau contenant les messages
  23.    
  24.     int pRC;
  25.     //return code ok = 0 :: ko = 1
  26.    
  27.     puts("Combien de message voulez vous lire?\n" );
  28.     //OUT  
  29.    
  30.     scanf("%d", &dNbrmessage);
  31.     //IN  
  32.    
  33.     fflush(stdin);
  34.        
  35.     tTableau = fTabinit(&dNbrmessage);
  36.     //initialise le tableau de messages
  37.    
  38.     //insertion
  39.     for(dI = 0; dI < dNbrmessage; dI++)
  40.     {
  41.         puts("Entrez le message\n" );
  42.         scanf("%s", &pMsg);
  43.         fflush(stdin);
  44.         fInsert(tTableau, pMsg, &dI);
  45.         puts("Message insere" );
  46.     }
  47.    
  48.     puts("debut affichage\n" );
  49.     //affichage
  50.     fDisplay(tTableau, &dNbrmessage);
  51.    
  52.     return 0;
  53. }


 

Code :
  1. /*******F1.c***********/
  2. char **fTabinit(int* pTaille)
  3. {
  4.     char **tTab;
  5.     //tableau de messages
  6.  
  7.     tTab = (char **) malloc ((*pTaille) * sizeof (char *));
  8.     //allocation dynamique du tableau de cdc
  9.    
  10.     if (tTab == NULL)
  11.     {
  12.         puts("Erreur d'allocation" );
  13.     }
  14.     return tTab;
  15.     //retourne l'adresse du tableau
  16. }
  17. void fInsert(char **tTab, char *cMsg, int *dPosition)
  18. {
  19.     int dLongueur;
  20.     //taille cdc
  21.    
  22.     dLongueur = strlen(cMsg)+1;
  23.     //taille effective
  24.  
  25.     tTab[*dPosition] = (char*) malloc (dLongueur * sizeof (char));
  26.     //allocation du msg
  27.    
  28.     if(tTab == NULL)
  29.     {
  30.         puts("Erreur d'allocation" );
  31.     }
  32.     //test  
  33.    
  34.     strcpy(tTab[*dPosition], cMsg);
  35.     //insertion
  36. }
  37. void fDisplay(char **tTab, int *dNbrelem)
  38. {
  39.     int i;
  40.     for(i = 0; i<*dNbrelem; i++)
  41.     {
  42.         printf("%s", tTab[i]);
  43.     }
  44. }

Reply

Marsh Posté le 20-09-2015 à 21:14:55   

Reply

Marsh Posté le 20-09-2015 à 23:39:32    

char *pMsg = NULL;
....
scanf("%s", &pMsg);
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed