Mini projet en langage C

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. le probleme : comme enregistrer les noms dans un tableau.
    1. JE SAIS PAS VRAIMENT PAR OU COMMENCER
      1. @loupiuspar exemple: je voudrai stoker les nom dans un tableau, puis afficher le contenu de ce tableau.
        tableau contient : par ex ("jack","chamhi","loupius")
      2. @Utilisateur anonymeLe 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.
      3. @loupiusmerci bcp malgré jai rien compris car on a pas etudié les fonction malloc......
      4. @Utilisateur anonymeSans 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];