Partage
  • Partager sur Facebook
  • Partager sur Twitter

pointeur de tableaux

    26 janvier 2006 à 20:01:10

    b'jour :)
    je me suis lancé dans un prog pour apprendre les capitales et pays. j'ai utilisé un tableau à 2 entrées. Pour remplir le tableau j'ai décidé de créer une fonction pour chaque continent (la fonction p_et_c_afrique rempli le tableau des capitales et pays d'afrique et ainsi de suite)

    mais là j'ai un problème : pour pouvoir renvoyer toutes les valeurs des pays et capitales, un tableau_pointeur. seulement, il me ferme mon programme à tous les coups quand je rentre dans pays_et_capitales_afrique.c.
    voila le code

    main.c


    #include <stdio.h>
    #include <stdlib.h>
    #include "files.h"

    int main(int argc, char *argv[])
    {
        char pays_afrique[60][60];
        char pays_amerique[40][40];
        char pays_asie[50][50];
        char pays_europe[50][50];
        char pays_oceanie[20][20];
       
        char capitale_afrique[2][53];
        char capitale_amerique[2][35];
        char capitale_asie[2][47];
        char capitale_europe[2][43];
        char capitale_oceanie[2][14];
       
        printf("passage ...");
        getchar();
       
        p_et_c_afrique(pays_afrique, capitale_afrique);
       
        printf("finis !!");
        getchar();
    }


    pays_et_capitales_afrique.c

    #include <stdio.h>
    #include <stdlib.h>
    #include "files.h"

    char p_et_c_afrique(char *ptr_pays_afrique[60][60], char *ptr_capitale_afrique[60][60])
    {
         printf("J'y suis...");
         getchar();
        strcpy (*ptr_pays_afrique [0],"Afrique du Sud");
        strcpy (*ptr_pays_afrique[1],"Algerie");
        strcpy (*ptr_pays_afrique[2],"Angola");
        strcpy (*ptr_pays_afrique[3],"Benin");
        strcpy (*ptr_pays_afrique[4],"Botswana");
        strcpy (*ptr_pays_afrique[5],"Burkina");
        strcpy (*ptr_pays_afrique[6],"Burundi");
        strcpy (*ptr_pays_afrique[7],"Cameroun");
        strcpy (*ptr_pays_afrique[8],"Cap-Vert");
        strcpy (*ptr_pays_afrique[9],"Republique centrafricaine");
        strcpy (*ptr_pays_afrique[10],"Comores");
        strcpy (*ptr_pays_afrique[11],"Republique democratique du Congo");
        strcpy (*ptr_pays_afrique[12],"Congo");
        strcpy (*ptr_pays_afrique[13],"Cote d'Ivoire");
        strcpy (*ptr_pays_afrique[14],"Djibouti");
        strcpy (*ptr_pays_afrique[15],"Egypte");
        strcpy (*ptr_pays_afrique[16],"Ethiopie");
        strcpy (*ptr_pays_afrique[17],"Erythree");
    }


    files.h (il est pas encore très remplis :p )

    char p_et_c_afrique(char *ptr_pays_afrique[60][60], char *ptr_capitale_afrique[60][60]);



    Voila
    z'avez une idée ?
    • Partager sur Facebook
    • Partager sur Twitter
      26 janvier 2006 à 21:11:26

      Pourquoi ___*___ptr_pays_afrique[60][60] ?
      Le pays_afrique transmis en argument est une adresse, pas besoin de rajouter des pointeurs.
      Sinon ptr_capitale_afrique[60][60] ne peut pas marcher, tout simplement parce que le tableau passé en argument n'a pas pour dimensions [60][60].

      Mais sinon... Faire ça en dur c'est la solution du pauvre. Une simple base de données sous forme de fichier texte et ça sera bien plus propre et maintenable que ça.
      • Partager sur Facebook
      • Partager sur Twitter
        26 janvier 2006 à 21:27:06

        Ca sert à rien de mettre "ptr" dans le nom de la variable, le gros * devant est là pour indiquer ça. (bon, dans ton cas il fallait pas le mettre, mais c'était une remarque d'ordre général :p).
        • Partager sur Facebook
        • Partager sur Twitter
          27 janvier 2006 à 14:03:24

          thx Elentar. Je me met aux entrées/sorties :)
          • Partager sur Facebook
          • Partager sur Twitter

          pointeur de tableaux

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown