Partage
  • Partager sur Facebook
  • Partager sur Twitter

Malloc & Co... Problème

Là je sèche :(

Sujet résolu
    5 octobre 2006 à 18:49:11

    Bonjour,

    Voilà, en gros j'utilise le petit exemple de M@teos (désolé si l'orthogaphe est mauvaise) pour tester malloc (et après faire quelques tests) je mets tranquillement l'exemple de son cour :

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    #include "TP_Tableaux.h"

    int main(int argc, char *argv[])
    {
        long* memoireAllouee = NULL;

        memoireAllouee = malloc(sizeof(long));
        if (memoireAllouee == NULL) // Ligne où on me dit que ça plante (12)
        {
            exit(0);
        }

        return 0;
    }


    Mais... Ca plante et ça m'affiche :

    "invalid conversion from 'void*' to 'long int*'

    Voilà je comprend pas pourquoi ça bugg (j'ai peut-être fait une connerie mais ça m'étonnerait vu que l'exemple est tiré du cours ^^)

    A++ Amis Zér0s ;)
    Félixator ou Hillidan (Je me rappelle plus lequel j'ai mis en guise de pseudo :euh: )
    • Partager sur Facebook
    • Partager sur Twitter
      5 octobre 2006 à 18:52:20

      Tu dois compiler en C++. Compile en C.

      Citation

      Félixator ou Hillidan (Je me rappelle plus lequel j'ai mis en guise de pseudo :euh: )

      Aucun des deux xD
      • Partager sur Facebook
      • Partager sur Twitter
        5 octobre 2006 à 19:36:00

        Citation : Pas de titre

        Citation : Elentar


        Aucun des deux xD



        :lol: Ah ben merde alors ^^

        Sinon, nan j'ai bien un fichier c, "prout.c" (Vous remarquerez l'originalité du nom :-°
        • Partager sur Facebook
        • Partager sur Twitter
          5 octobre 2006 à 19:48:53

          Certes, mais une extension ça ne veut pas dire grand chose ;)
          Regarde dans les options de ton compileur, et si tu ne trouves pas explique quels sont tes outils...
          • Partager sur Facebook
          • Partager sur Twitter
            5 octobre 2006 à 19:49:49

            Citation : Vengeor

            Citation : Pas de titre

            Citation : Elentar


            Aucun des deux xD



            :lol: Ah ben merde alors ^^

            Sinon, nan j'ai bien un fichier c, "prout.c" (Vous remarquerez l'originalité du nom :-°



            Pour moi ce n'est pas possible. Si tu compiles en C, la conversion doit se faire implictement. Refais donc un projet en faisant attention de sélectionner un Projet C et non un Projet C++ car en C++, une conversion void* -> T* ne se fait pas implicitement, il faut faire la conversion soit même en utilisant un cast :


            memoireAllouee = (long *)malloc(sizeof(long));


            Mais en C++, il existe new au lieu de malloc.
            • Partager sur Facebook
            • Partager sur Twitter
              6 octobre 2006 à 17:47:44

              Nan, j'ai recréé un fichier "Source File" (j'ai vérifié dans propriétés) mais toujours rien... :( Et pour les options du compilateur (J'ai Dev-C++...)

              Compilateur à configurer :
              Default compiler

              Option, tout est désactivé

              Et répertoire/programme j'ai rien touché comme dans les autres trucs ^^
              • Partager sur Facebook
              • Partager sur Twitter
                9 octobre 2006 à 18:40:34

                S'il vous plaît, aidez-moi là je sèche ^^
                • Partager sur Facebook
                • Partager sur Twitter
                  10 octobre 2006 à 7:38:06

                  Citation : Vengeor

                  S'il vous plaît, aidez-moi là je sèche ^^


                  Ceci compile en C sans problèmes :
                  #include <stdio.h>
                  #include <stdlib.h>

                  int main(void)
                  {
                      long* memoireAllouee = NULL;

                      memoireAllouee = malloc(sizeof(long));
                      if (memoireAllouee == NULL) // Ligne où on me dit que ça plante (12)
                      {
                          exit(0);
                      }

                      return 0;
                  }
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Music only !
                    10 octobre 2006 à 18:53:05

                    [...] :euh: [...]

                    Oui j'ai essayé ton truc...

                    Ca fonctionne pas, pourtant j'ai créé un nouveau projet avec un fichier.c (C Source File) et j'ai testé...

                    "Ligne 8 ==> invalid conversion from 'void*' to 'long int*' "

                    Pliz, qu'est-ce qui va pas ? C'est dans les options de mon compilateur ??

                    Et en passant, quelqu'un ne saurait pas comment on met le retour à la ligne automatique dans Dev-C++ ??
                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 octobre 2006 à 19:00:07

                      Citation : Vengeor


                      Ca fonctionne pas, pourtant j'ai créé un nouveau projet avec un fichier.c (C Source File) et j'ai testé...

                      "Ligne 8 ==> invalid conversion from 'void*' to 'long int*' "

                      Pliz, qu'est-ce qui va pas ? C'est dans les options de mon compilateur ??


                      Visiblement, tu compiles en C++. Peux-tu poster l'intégralité du message de compilation ? (Copié/collé)

                      Il doit y avoir une mauvaise config queque part...

                      Citation : Pas de titre


                      Et en passant, quelqu'un ne saurait pas comment on met le retour à la ligne automatique dans Dev-C++ ??



                      AMA, il faut le mettre à la main.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Music only !
                        10 octobre 2006 à 19:51:35

                        Citation : Mon Compilateur

                        "In function 'int main()' "
                        +
                        "Ligne 8 ==> invalid conversion from 'void*' to 'long int*' "



                        Bien énervant ce truc... Je pense que c'est dans une option du comilateur, mais vu que j'y connais rien... :(

                        Citation : -ed-

                        AMA, il faut le mettre à la main.



                        Et merde, c'est bien ce que je pensais :(
                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 octobre 2006 à 19:57:50

                          il faut commencer un nouveau projet en cochant "projet C" quand tu choisi le nom du projet.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 octobre 2006 à 20:07:57

                            Ben... J'ai Dev-C++ et au début je coche "Console Application" comme dans le cours de M@atéo... Pourquoi, c'est pas bien ? ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              10 octobre 2006 à 20:11:08

                              Citation : Vengeor

                              Ben... J'ai Dev-C++ et au début je coche "Console Application" comme dans le cours de M@atéo... Pourquoi, c'est pas bien ? ?



                              Penses tu bien à cocher 'Projet C' et non 'Projet C++' ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                10 octobre 2006 à 20:55:53

                                Citation : Vengeor

                                Citation : Mon Compilateur

                                "In function 'int main()' "
                                +
                                "Ligne 8 ==> invalid conversion from 'void*' to 'long int*' "




                                J'ai demandé l'intégralité. Suis les consignes STP, ou alors ce n'est pas la peine de demander de l'aide. On a pas que ça à faire...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Music only !
                                  11 octobre 2006 à 17:44:02

                                  Citation : -ed-

                                  J'ai demandé l'intégralité. Suis les consignes STP, ou alors ce n'est pas la peine de demander de l'aide. On a pas que ça à faire...



                                  1) Désolé mais j'ai confondu avec l'intégralité de l'erreur...
                                  2) Et j'utilise le code que tu m'as donné donc je pensais pas avoir le besoin de le reciter...

                                  #include <stdio.h>
                                  #include <stdlib.h>

                                  int main(void)
                                  {
                                      long* memoireAllouee = NULL;

                                      memoireAllouee = malloc(sizeof(long));
                                      if (memoireAllouee == NULL) // Ligne où on me dit que ça plante (12)
                                      {
                                          exit(0);
                                      }

                                      return 0;
                                  }




                                  Citation : Octal

                                  Penses tu bien à cocher 'Projet C' et non 'Projet C++' ?



                                  Ben... Pour un nouveau projet, je prends "Console Application" et... Ah merde, ya une petite ligne en bas... :euh:

                                  Bon, je prend C :D^^

                                  [...]
                                  [...]
                                  [...]

                                  Cool, ça fonctionne !! Enfin... J'ai vraiment fait une erreur à la con... (J'espère que ça fait pas trop boulet)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    12 octobre 2006 à 0:57:16

                                    Citation : Vengeor

                                    Citation : -ed-

                                    J'ai demandé l'intégralité. Suis les consignes STP, ou alors ce n'est pas la peine de demander de l'aide. On a pas que ça à faire...



                                    1) Désolé mais j'ai confondu avec l'intégralité de l'erreur...


                                    C'est bien ce que j'avais demandé. L'integralité du message d'erreur (par copié collé de l'onglet 'Build log' (Code::Blocks)).
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Music only !

                                    Malloc & Co... Problème

                                    × 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