Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pointeur.. Pointe moi vers la solution...

Problème de pointeur dans fonction

Sujet résolu
Anonyme
    2 janvier 2008 à 22:52:44

    Salut, j'ai un gros problème.
    Je fait un t'it programme pour m'exercer. Je doit faire une fonction qui vas comme une grande générer des nombres entre 1000 et 1.
    Mon problème?
    Quand je compile. j'ai des nombre commes 2568594 (pour le max) et -1 o_O même si j'ai clairement déclarer les variables MAX et MIN dans la fonction nécessaire.
    Voici les codes ** je ne montre que les fichiers qui son néccesaire.:

    -0-calcul.c-0-
    1. #include <cstdlib>
    2. #include <iostream>
    3. #include "generateur.h"
    4. long nombre;
    5. long nombre1;
    6. long nombre2;
    7. void addsous()
    8. {
    9.      long nombre;
    10.      long nombre1;
    11.      long nombre2;
    12.      long *pointeur = &nombre;
    13.      long *pointeur1 = &nombre1;
    14.      long *pointeur2 = &nombre1;
    15.     long choix;
    16.      printf("\n Voila, on vas se pratiquer a faire des additions.");
    17.      void gener ( long pointeur, long pointeur1, long pointeur2);
    18.      printf (" \n\n Catherine, a recus %ld$ a noel, Stephanie, elle, en a recus \n %ld. Les deux veulent donner leurs argent a leucan, combien donneront-elles en \n tout?", nombre, nombre1);
    19.      }
    20. void muldiv()
    21. {
    22.      printf ("division");
    23.      }
    24. void modul()
    25. {
    26.      printf ("modulo");
    27.      }
    28. void alge()
    29. {
    30.      printf ("algebre");
    31.      }
    32. void aire()
    33. {
    34.      printf ("aire");
    35.      }
    36. void inf()
    37. {
    38.      printf ("information");
    39.      }


    -0-Calcul.h-0-

    1. void addsous();
    2. void muldiv();
    3. void modul();
    4. void alge();
    5. void aire();
    6. void inf();


    -0-Generateur.h-0-

    1. void gener ( long *un, long *deux, long *trois);


    -0-generateur.c-0-

    1. #include <cstdlib>
    2. #include <iostream>
    3. #include "generateur.h"
    4. void gener ( long *un, long *deux, long *trois)
    5. {
    6.      int MAX = 1000;
    7.      int MIN = 1;
    8.     srand(time(NULL));
    9.     *un = (rand() % (MAX - MIN + 1)) + MIN;
    10.     *deux = (rand() % (MAX - MIN + 1)) + MIN;
    11.     *trois = (rand() % (MAX - MIN + 1)) + MIN;
    12. }




    Merci de m'aider... perso j'ai revirer sous tout les angles le problème. Relus le chapitre sur les pointeurs X nombre de fois...


    POouvez vous m'aidez...
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2008 à 22:57:50

      je pense que c'est cette ligne

      void gener ( long pointeur, long pointeur1, long pointeur2);

      il ne faut pas mettre les types quand on appelle une fonction


      et autre chose le srand ne doit être appeler qu'une seule fois donc il faut le bouger
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        2 janvier 2008 à 23:17:50

        euh je l'aie appeler plusieurs fois?


        Sinon, quand j'enlève les long dans l'appel... chu dsl mais ça plante.

        À moins que ce ne sois moi qui fasse mal les choses... :-° je ne voie pas pk ça plante...

        Voici le log d'erreur:
        Compilateur: Default compiler
        Building Makefile: "C:\Documents and Settings\olivier bois\Bureau\Programmation\Projet\Math-E-Matix\Makefile.win"
        Exécution de make...
        make.exe -f "C:\Documents and Settings\olivier bois\Bureau\Programmation\Projet\Math-E-Matix\Makefile.win" all
        g++.exe -c calcul.c -o calcul.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"

        calcul.c: In function `void addsous()':
        calcul.c:17: error: variable or field `gener' declared void
        calcul.c:17: error: initializer expression list treated as compound expression
        calcul.c:17: error: invalid conversion from `long int*' to `int'

        make.exe: *** [calcul.o] Error 1

        Exécution terminée



        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2008 à 23:24:40

          Enlève le "void" ligne 17, ce sera déjà une erreur de moins...
          Pour le reste je sais pas j'ai pas tout regarder encore
          • Partager sur Facebook
          • Partager sur Twitter
            2 janvier 2008 à 23:31:41

            Effectivement..Il y a quelques petits problèmes.Tu n'as pas inclus tous tes fichiers dans "calcul.c",tu n'as pas de fonction "main" et tu as mis le prototype d'une fonction alors que tu voulais l'appeler.ET ta déclaration de pointeur est assez bizarre...

            Il faut que tu saches que *p doit être égal à la variable,donc si *p=age ça veut dire que p=&age mais pas *p=&age :s
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              3 janvier 2008 à 4:17:29

              ok Merci... j'ai résolue mon problème grace à vous.. j'ai la légère impression que j'ai de la difficulter avec l'appel de mes fonctions ^^ ça fait plusieurs fois que j'ai des problêmes similaire...
              • Partager sur Facebook
              • Partager sur Twitter

              Pointeur.. Pointe moi vers la solution...

              × 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