Mini projet en langage C

Utilisateur anonyme -  
 Utilisateur anonyme -
Salam,
j'ai un mini projet "gestion personnel" en langage C mais sans utiliser la base de données et sans utiliser les fichiers.
on a seulement le droit d'utiliser les tableaux.
ce mini projet pert ses enregistrements aprés chaque fermeture.
merci d'avance
Configuration: Windows Vista
Internet Explorer 7.0

3 réponses

  1. Utilisateur anonyme
     
    le probleme : comme enregistrer les noms dans un tableau.
    2
  2. Utilisateur anonyme
     
    JE SAIS PAS VRAIMENT PAR OU COMMENCER
    0
    1. Utilisateur anonyme > loupius
       
      par exemple: je voudrai stoker les nom dans un tableau, puis afficher le contenu de ce tableau.
      tableau contient : par ex ("jack","chamhi","loupius")
      0
    2. loupius > Utilisateur anonyme
       
      Le plus simple, me semble-t-il, est d'utiliser un tableau de pointeurs dynamique, pointeurs sur des chaînes de caractères.
      -> déclaration d'un tableau:: char** chaines = NULL;
      -> déclaration d'un indice: int indice = 0;
      Si on a besoin de stocker une chaîne contenue dans un char* chaine:
      -> réallocation: chaines = (char**)realloc (chaines, (++indice) * sizeof(char*));
      Là il y a 2 méthodes de copie de la chaîne:
      - soit une copie logique: chaines[indice-1] = chaine; ce qui implique de ne pas désallouer 'chaine',
      - soit une copie physique:
      -> allocation mémoire: chaines[indice-1] = (char*)malloc(strlen(chaine)+1);
      -> copie physique: strcpy (chaines[indice-1], chaine); ne pas oublier de désallouer 'chaine'.
      Pour imprimer un tableau, pas de mystères:
      int i; for (i=0; i<indice; i++) printf ("%s\n", chaines[i]);

      Nota: Evidemment il ne faut jamais oublier de vérifier si les malloc et realloc se sont bien déroulés.
      0
    3. Utilisateur anonyme > loupius
       
      merci bcp malgré jai rien compris car on a pas etudié les fonction malloc......
      0
    4. loupius > Utilisateur anonyme
       
      Sans allocation ,tu ne pourras rien faire, pas d'ajout d'enregistrement possible!
      Tu as donc un problème de type statique.
      Seule solution, mettre en dur les infos:
      -> char* chaines[3] = {"jack", "chamhi", "loupius"};
      Pour les utiliser, comme précédemment par: chaines[i];
      0