Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur incompréhensible

A cause de mon tableau double colonne ?

    7 octobre 2007 à 19:22:55

    Salut,

    J'ai plein d'erreurs du genre :
    Erreur 20 error C2059: erreur de syntaxe : ']' c:\users\théo\desktop\programmation\c-c++\gun\emplacement.c 256

    Erreur 7 error C2087: 'carte' : indice manquant c:\users\théo\desktop\programmation\c-c++\gun\prototype.h 12

    Erreur 8 error C2087: 'map' : indice manquant c:\users\théo\desktop\programmation\c-c++\gun\prototype.h 14


    Qui ont toutes un rapport avec mes fonctions qui utilise un tableau avec deux colonnes :

    1. deplaceHero(ecran, 1, carte[][], hero, positionHero);


    1. int deplaceHero(SDL_Surface *ecran, int position, long carte[][], SDL_Surface *hero, SDL_Rect positionHero);


    1. int collision(long map[][], SDL_Rect positionJoueur, int positionDeplacement);


    Vous voyez d'ou peux provenir l'erreur ?
    • Partager sur Facebook
    • Partager sur Twitter
      7 octobre 2007 à 19:40:47

      par rapport à tes erreurs tu a du oublier un [
      (ou un ] de trop dans emplacement.c)

      indice manquant: tu a du oublier un indice dans ton prototype
      (exemple void truc(long x); dans le .h
      et void truc(long x,long y) dans le c
      )

      pareil pour map
      • Partager sur Facebook
      • Partager sur Twitter
        7 octobre 2007 à 20:00:57

        Il faut que tu spécifie la taille de la 2e dimension du tableau :
        deplaceHero(ecran, 1, carte[][20], hero, positionHero);

        Par exemple.
        • Partager sur Facebook
        • Partager sur Twitter
          7 octobre 2007 à 20:12:03

          ou alors envoyer des tableau de pointeur
          1. int deplaceHero(SDL_Surface *ecran, int position, long* carte[], SDL_Surface *hero, SDL_Rect positionHero);//voila :)
          • Partager sur Facebook
          • Partager sur Twitter
            7 octobre 2007 à 20:14:13

            Salut, merci tout le monde, maintenant j'ai une erreur :
            Erreur 18 error C2440: 'fonction' : impossible de convertir de 'SDL_Rect **__w64 ' en 'SDL_Rect' c:\users\théo\desktop\programmation\c-c++\gun\emplacement.c 256


            voila la ligne qui plante :
            1. deplacementReeussie = collision(carte[100][100], &positionHero, position);
            • Partager sur Facebook
            • Partager sur Twitter
              7 octobre 2007 à 20:24:51

              bonne chance pour ton projet ;)
              • Partager sur Facebook
              • Partager sur Twitter
                7 octobre 2007 à 21:05:14

                Euh merci, est ce que tu pourrais m'aider pour mon erreur en haut ?
                • Partager sur Facebook
                • Partager sur Twitter
                  7 octobre 2007 à 21:08:59

                  Pourquoi t'envoie un pointeur vers positionHero à ta fonction?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 octobre 2007 à 21:17:39

                    Parce que sans il me dit qu'il est impossible de convertir un pointeur sur une position en une variable positon :

                    Erreur 18 error C2440: 'fonction' : impossible de convertir de 'SDL_Rect *' en 'SDL_Rect' c:\users\théo\desktop\programmation\c-c++\gun\emplacement.c 256
                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 octobre 2007 à 21:20:55

                      Ben là c'est encore pire : t'essaie de convertir un pointeur vers un pointeur de SDL_Rect en une variable.

                      Donc tu dois sois :
                      - Creer un SDL_Rect qui n'est pas un pointeur
                      - Envoyer *positionHero (ou (*positionHero) je crois que les deux marchent).
                      - Faire que ta fonction prenne un pointeur vers un SDL_Rect
                      • Partager sur Facebook
                      • Partager sur Twitter
                        7 octobre 2007 à 21:37:18

                        Merci beaucoup ca marche :) !!!!!
                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 octobre 2007 à 0:12:31

                          Citation : TH2O

                          J'ai plein d'erreurs <...>

                          1. int collision(long map[][], SDL_Rect positionJoueur, int positionDeplacement);



                          Vous voyez d'ou peux provenir l'erreur ?


                          Bah, oui. Il faut fournir les dimensions. Le compilateur n'est pas devin. Si il n'a pas l'info, il ne peut pas faire les calculs d'adressages indispensables pour atteindre les données...

                          http://mapage.noos.fr/emdel/notes.htm#param_tab

                          on peut cependant omettre la dimension la plus à gauche (la plus 'externe').
                          1. void f(T a[])
                          2. void f(T a[][N])
                          3. void f(T a[][M][N])
                          etc.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Music only !

                          Erreur incompréhensible

                          × 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