Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probléme de structure

Sujet résolu
    21 janvier 2007 à 23:36:29

    Bonjours à tous.

    Je voulais savoir comment assosié un pointeur de type int à un pointeur de type stats(variable personnalisé).

    J'ai esseillé ça:
    *armeChoisie = &(*stats).berretta_9mm;

    Mais celà ne marche pas.
    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2007 à 23:45:45

      Ton pointeur "armeChoisie" doit pas être déclarée en type int... Tu fais tout simplement "Arme *armeChoisie".

      Pour l'allocation, ça dépend de comment t'as déclaré "stats".

      Tu dois faire :
      Statistiques stats;
      //...
      *armeChoisie = &(stats.berretta_9mm);


      ou

      Statistiques *stats = new Statistique();
      //...
      *armeChoisie = stats->berretta_9mm;


      Mon code fonctionne comme en C (sauf le new) et je débute plus ou moins en C++, je peux me tromper, qu'on me corrige dans ce cas là...
      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2007 à 23:49:02

        Le probléme dans ton 1er code c'est que je veux l'assosié à l'adresse deplus c'est un pointeur donc il faut mettre (*stats).beretta!
        • Partager sur Facebook
        • Partager sur Twitter
          22 janvier 2007 à 0:53:17

          Désolé j'ai c/c trop vite, j'ai corrigé le 1er code.

          Pour le 2eme : (*p).v est équivalent à p->v donc il est juste.
          • Partager sur Facebook
          • Partager sur Twitter
            22 janvier 2007 à 0:56:08


            Statistiques stats;
            //...
            *armeChoisie = stats.berretta_9mm;


            ou


            Statistiques* stats;
            //...
            *armeChoisie = stats->berretta_9mm;
            • Partager sur Facebook
            • Partager sur Twitter
              22 janvier 2007 à 13:14:01

              JE VEUX L'ASSOCIE A UNE ADRESSE!
              DONC C'EST FAUX CA:
              *armeChoisie = stats->berretta_9mm;
              stats->berretta_9mm est une valeur pas une adresse.
              • Partager sur Facebook
              • Partager sur Twitter
                22 janvier 2007 à 17:12:11

                Heu, attends, que je récapitule:

                Tu as :

                struct Statistiques
                {
                int berretta_9mm; /*supposé un int?*/
                }


                struct Statistiques stats = {0};
                struct Statistiques *P_stats = &stats;
                int *armeChoisie = NULL;



                Déjà, si tu veux associer un pointeur à l'adresse de "berretta_9mm", alors ce n'est pas à une structure que tu l'associes. mais au type de "berretta_9mm"

                En supposant que ce soit un int, je ferais comme ceci:

                armeChoisie = &stats->berretta_9mm;


                Citation : DJ-JB

                stats->berretta_9mm est une valeur pas une adresse.



                Eh bien tu réponds toi même à la question en fait.
                Si c'est une valeur, tu lui colles l'opérateur d'adresse '&' et le tour est joué...

                EDIT : Merde, tu fais du C++, j'avais pas fais gaffe.
                Putain de forums mélangés... :colere:
                Enfin bon, je crois que pour ce genre de trucs c'est compatible, essaie...
                • Partager sur Facebook
                • Partager sur Twitter
                  22 janvier 2007 à 18:31:36

                  Encors une fois..

                  armeChoisie = &stats->berretta_9mm;

                  Le probléme ici est que armeChoisie n'est pas un pointeur, je veux associé un pointeur à une adresse d'un pointeur de stats..
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 janvier 2007 à 18:57:31

                    Citation : Pas de titre

                    Le probléme ici est que armeChoisie n'est pas un pointeur



                    Et c'est quoi alors? o_O
                    Si tu as déclaré "armeChoisie" comme un pointeur de int, alors je vois pas ce que tu veux que ce soit d'autre...
                    En faisant *armeChoisie, tu accèdes à la valeur sur laquelle pointe armeChoisie.

                    Mais donne donc tes définitions de variables qu'on y voit plus clair.

                    EDIT : au temps pour moi, je voulais écrire ceci :

                    armeChoisie = &P_stats->berretta_9mm;


                    A noter quand même que ceci:

                    Citation : Pas de titre

                    Je voulais savoir comment assosié un pointeur de type int à un pointeur de type stats(variable personnalisé).



                    Ne veux rien dire. Tu ne crées pas un pointeur d'un certain type pour ensuite lui attribuer l'adresse d'une variable d'un type différent. C'est absurde.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 janvier 2007 à 19:12:25

                      Non car c'est une variable de type int qui se trouve dans la variable de type stats.(qui se trouve dans la structure)
                      Je veux en faite assosié un pointeur à une adresse d'un pointeur d'une varible de type stats mais qui posséde une varible de type int.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 janvier 2007 à 19:20:53

                        Citation : Pas de titre

                        Je veux en faite assosié un pointeur à une adresse d'un pointeur d'une varible de type stats mais qui posséde une varible de type int.



                        Soit tu crées un pointeur de stats et tu utilises ensuite '->' pour accéder au 'int' de cette structure via ton pointeur de structure.

                        Soit tu crées un pointeur de int et tu fais comme je fais. (Tu peux peut-être passer directement par la structure, je ne sais pas comment ton code est organisé...)

                        EDIT : Ce que j'ai fais marche, j'ai vérifié.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 janvier 2007 à 21:54:17

                          *armeChoisie = &(*stats).berretta_9mm;

                          Voilà se que je voudrais mais en version qui marche.

                          J'ai esseillé se que tu m'as mis, sa se compile mais sa ne marche pas, il ne pointe pas comme il faut, comme si armeChoisie n'étant pas un pointeur. Il faut mettre a la limite *armeChoisie.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 janvier 2007 à 22:25:46

                            Sans les déclarations c'est incompréhensible, et ça l'est encore moins avec tes explications. Mets tes déclarations qu'on puisse voir exactement ce que tu veux faire.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                              22 janvier 2007 à 23:24:38

                              Citation : DJ-JB

                              J'ai esseillé se que tu m'as mis, sa se compile mais sa ne marche pas, il ne pointe pas comme il faut, comme si armeChoisie n'étant pas un pointeur. Il faut mettre a la limite *armeChoisie.



                              Bon, franchement, je ne comprends plus RIEN à ce que tu veux faire.
                              "Il ne pointe pas comme il faut" ok, pourquoi pas. Mais montre-moi comment tu l'utilises ensuite, que je puisse comprendre ce que tu cherches.

                              Citation : int21h

                              Sans les déclarations c'est incompréhensible



                              Oui, je le lui ai déjà demandé...J'attends.
                              Mais encore plus que ça, j'attends de voir comment il utilise son pointeur ensuite.

                              *armeChoisie = &(*stats).berretta_9mm;


                              Heu, en C, '*' est l'opérateur d'indirection. Donc sauf s'ils ont changé ça dans le C++, cela veut dire que quand tu écris : *armeChoisie, tu demandes à accéder à la variable sur laquelle pointe armeChoisie.
                              Donc problème.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                23 janvier 2007 à 18:23:53

                                Merci beaucoup mon probléme est résolue grâce à vous, je ne sais pas a partir de quelle moment je vous es indiquer un mauvais renseingnement.

                                Encors Merçi.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Probléme de structure

                                × 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