Thaybow7 | 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 :
- /*******MAIN***********/
- #include <stdlib.h>
- #include <stdio.h>
- #include "F1.h"
- #include "F1.c"
- #include <string.h>
- /*
- *
- */
- int main(int argc, char** argv) {
-
- int dNbrmessage;
- //nbre de messages à lire
-
- int dI;
- //iterateur
-
- char *pMsg = NULL;
- //message du user
-
- char **tTableau;
- //tableau contenant les messages
-
- int pRC;
- //return code ok = 0 :: ko = 1
-
- puts("Combien de message voulez vous lire?\n" );
- //OUT
-
- scanf("%d", &dNbrmessage);
- //IN
-
- fflush(stdin);
-
- tTableau = fTabinit(&dNbrmessage);
- //initialise le tableau de messages
-
- //insertion
- for(dI = 0; dI < dNbrmessage; dI++)
- {
- puts("Entrez le message\n" );
- scanf("%s", &pMsg);
- fflush(stdin);
- fInsert(tTableau, pMsg, &dI);
- puts("Message insere" );
- }
-
- puts("debut affichage\n" );
- //affichage
- fDisplay(tTableau, &dNbrmessage);
-
- return 0;
- }
|
Code :
- /*******F1.c***********/
- char **fTabinit(int* pTaille)
- {
- char **tTab;
- //tableau de messages
-
- tTab = (char **) malloc ((*pTaille) * sizeof (char *));
- //allocation dynamique du tableau de cdc
-
- if (tTab == NULL)
- {
- puts("Erreur d'allocation" );
- }
- return tTab;
- //retourne l'adresse du tableau
- }
- void fInsert(char **tTab, char *cMsg, int *dPosition)
- {
- int dLongueur;
- //taille cdc
-
- dLongueur = strlen(cMsg)+1;
- //taille effective
-
- tTab[*dPosition] = (char*) malloc (dLongueur * sizeof (char));
- //allocation du msg
-
- if(tTab == NULL)
- {
- puts("Erreur d'allocation" );
- }
- //test
-
- strcpy(tTab[*dPosition], cMsg);
- //insertion
- }
- void fDisplay(char **tTab, int *dNbrelem)
- {
- int i;
- for(i = 0; i<*dNbrelem; i++)
- {
- printf("%s", tTab[i]);
- }
- }
|
|