Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Tableau] Taille variable

    4 avril 2008 à 15:08:44

    Bonjour à tous je suis en train de codé une map 2D tiré d'un fichier txt.
    Je crée donc un tableau 2D en fonction de 2valeurs (x et y) se trouvant dans le txt.
    Le problème c'est l'allocation dynamique...

    J'ai essayé comme ça :

    1. typedef struct Coordonnee Coordonnee;
    2. struct Coordonnee
    3. {
    4.    int x;
    5.    int y;
    6. };
    7. void afficherMap(/*SDL_Surface *ecran*/)
    8. {
    9.     FILE *fichierMap = fopen("map.txt", "r");
    10.     if(fichierMap == NULL)
    11.         printf("Erreur d'ouverture du fichier map.txt");
    12.     else
    13.     {
    14.         Coordonnee tailleMap;
    15.         char IDMap[20];
    16.         fscanf(fichierMap, "%ld %ld %s", &tailleMap.x, &tailleMap.y, &IDMap);
    17.         printf("X : %ld\nY : %ld\nID : %s", tailleMap.x, tailleMap.y, IDMap);
    18.         int *tableauMap;
    19.         tableauMap = new int[tailleMap.x][tailleMap.y];
    20.         fclose(fichierMap);
    21.         delete [] tableauMap;
    22.     }
    23. }


    Quelqu'un aurai une idée ?

    Merci à tous
    • Partager sur Facebook
    • Partager sur Twitter
      4 avril 2008 à 15:13:36

      FAQ C++ de developpez

      PS: pas besoin du typedef en C++
      • Partager sur Facebook
      • Partager sur Twitter
      C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
        4 avril 2008 à 15:17:31

        Citation : FAC++ Developpez

        Comment allouer dynamiquement un tableau ?

        Allouer un tableau dynamiquement en C++ se fait grâce à l'opérateur new []. Ce pointeur doit être libéré avec l'opérateur delete [].
        Un des avantages de new par rapport au malloc du C est que le constructeur par défaut des objets alloués est automatiquement appelé. Il en est de même pour leur destructeur lors de l'appel à delete [].

        1. int * tableau = new int[ 10] ; // alloue un tableau de 10 entiers
        2. delete [] tableau; // ATTENTION : ne pas oublier les crochets []




        Au fond... c'est ce que j'ai fait non?
        • Partager sur Facebook
        • Partager sur Twitter
          4 avril 2008 à 15:20:11

          Non. Regarde au chapitre de l'allocation de "structures" 2D
          • Partager sur Facebook
          • Partager sur Twitter
          C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.

          [Tableau] Taille variable

          × 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