Partage
  • Partager sur Facebook
  • Partager sur Twitter

Envoyer mon tableau deux colonne

Ca plante :@

    7 octobre 2007 à 23:34:28

    Bonsoir,

    Je n'arrive pas envoyer mon tableaux a ma fonction ca plante :
    1. deplacementReeussie = collision(carte[100][100], positionHero, positionDeplacement); // On regarde s'il y a une collision ou autre...

    La le programme s'ouvre, (un avertissement me dit que ce n'es pas bon :
    Avertissement 19 warning C4024: 'collision' : types différents pour le paramètre formel et réel 1 c:\users\théo\desktop\programmation\c-c++\gun\emplacement.c 254
    ) mais au moment de cette fonction ca plante; :
    1. deplacementReeussie = collision(carte[][100], positionHero, position); // On regarde s'il y a une collision ou autre...

    La il n'y a plus l'averto mais le programme ne veux plus s'ouvrir :
    Erreur 18 error C2059: erreur de syntaxe : ']' c:\users\théo\desktop\programmation\c-c++\gun\emplacement.c 254


    et voila le prototype de la fonction :
    1. int collision(long map[100][100], SDL_Rect *positionJoueur, int positionDeplacement);
    2. Pouvez vous m'aidez ? Merci d'avance :) .
    • Partager sur Facebook
    • Partager sur Twitter
      7 octobre 2007 à 23:49:28

      peux tu montrer les déclarations de carte[100][100], positionHero et positionDeplacement.
      merci
      • Partager sur Facebook
      • Partager sur Twitter
        7 octobre 2007 à 23:54:00

        Le 2e code est le bon : celui ou tu ne mets pas "carte[100][100]", mais "carte[][100]"

        Apres, il y a peut etre une autre erreur :)
        • Partager sur Facebook
        • Partager sur Twitter

        Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

          7 octobre 2007 à 23:59:53

          Fvirtman : ca me fait une erreur de syntaxe ']'
          ミニロプ :
          1. long carte[100][100] = {1};
          2. SDL_Rect positionHero;
          3. int deplaceHero(SDL_Surface *ecran, int positionDeplacement, long carte[][100], SDL_Surface *hero, SDL_Rect *positionHero)
          4. {

          Pour positionDeplacement je l'envoie quand j'utilise la fonction car il sert a indiquer ou se déplace le héro.
          J'ai changé le prototype de la fonction.
          • Partager sur Facebook
          • Partager sur Twitter
            8 octobre 2007 à 0:03:25

            ah ? normalement ça marche comme ça le passage de tableaus multidimensionnels dans une fonction : tu laisses la premiere dimension a [] et tu completes les autres.
            (cf mon tuto, ma signature §F.3.2.)
            • Partager sur Facebook
            • Partager sur Twitter

            Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

              8 octobre 2007 à 0:09:55

              Salut, j'ai enlevée [][100] a map et ca fonctionne, mais un autre probleme une simple soustraction plante :
              1. positionHero->y -= 5;


              vous voyez d'où cela peux venir o_O ?
              • Partager sur Facebook
              • Partager sur Twitter
                8 octobre 2007 à 0:11:39

                positionHero->y
                plante

                Haute probabilité de plantage : positionHero == NULL
                Est ce que tu as testé cette valeur ?
                • Partager sur Facebook
                • Partager sur Twitter

                Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                  8 octobre 2007 à 0:17:20

                  Citation : Fvirtman


                  positionHero->y
                  plante


                  Non car quand je fais positionHero.y
                  ca me dit :
                  Erreur 20 error C2231: '.y' : l'opérande gauche pointe vers 'struct', utilisez '->' c:\users\théo\desktop\programmation\c-c++\gun\emplacement.c 269


                  Citation : Fvirtman


                  Haute probabilité de plantage : positionHero == NULL
                  Est ce que tu as testé cette valeur ?



                  1. positionHero.x = 0; // La position du hero est égale a 0,50
                  2. positionHero.y = 50;


                  o_O
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 octobre 2007 à 0:20:04

                    oulala, j'ai peur que tu mélanges tout !

                    Si tu fais :

                    positionhero->x

                    Et que ça compile, ça veut dire que positionhero est un pointeur. Donc il ne faut pas essayer de faire positionhero.x, qui ne compilera pas.

                    Mais comme positionhero est un pointeur, il se peut qu'il soit égal a NULL, et dans ce cas, si tu fais positionhero->x, alors ça plantera, c'est probablement le probleme que tu as.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                      8 octobre 2007 à 0:23:50

                      Envois tout ton code, j'ai l'impression que c'est un grand n'importe quoi niveau pointeur.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 octobre 2007 à 1:41:57

                        Merci ! En fait j'avais mis un '*' en trop dans le prototype :)
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Envoyer mon tableau deux colonne

                        × 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