Partage
  • Partager sur Facebook
  • Partager sur Twitter

problemme au niveau de malloc

p=malloc(sizeof(long));

    7 octobre 2007 à 22:35:59

    Bonjour a tous j'utilise la derniere vertion de visual studio 2008 et j'ai un peutit problemme avec les allocations dynamiques .voici mon programme:
    1. #include"stdafx.h"
    2. #include<stdlib.h>
    3. int main()
    4. {
    5.         long* p = NULL;
    6.          p = malloc(sizeof(long));
    7.         if(p == NULL)
    8.         {
    9.                 exit{0};
    10.         }
    11.         printf("entrez un nombre");
    12.         scanf("%d",p);
    13.         printf("%d\n",*p);
    14.         free(p);
    15.         system("PAUSE");
    16.         return 0;
    17. }

    le problemme c'est qu'il ne veut pas se compiller et il me dit qu'il ya un beug au niveau de :
    1. p = malloc(sizeof(long));

    il me dit le message suivant:
    (error cannot convert from void* to long )
    merci d'avence.
    • Partager sur Facebook
    • Partager sur Twitter
      7 octobre 2007 à 22:39:14

      Vire stdafx.h, c'est pas standard, ça n'a rien à faire là. Vire system("pause") aussi, sauf si tu le veux vraiment pour les tests, m'enfin. Sinon, pour ton erreur, c'est très classique et la réponse tient en trois mots : compile en C (pas en C++).
      • Partager sur Facebook
      • Partager sur Twitter
        7 octobre 2007 à 22:46:47

        inteligence > lors de la création de ton projet, il faut penser à supprimer "utiliser les entêtes précompilées", tu peux toujours supprimer cette option.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          7 octobre 2007 à 22:47:48

          1. exit{0};


          C'est des parenthèses ( ) qu'il faut utiliser, et non des accolades { }, non ?
          • Partager sur Facebook
          • Partager sur Twitter
            7 octobre 2007 à 23:29:04

            bonjour a tous
            j'ai reussit a trouve la solution
            c'est un problemme de declaration
            p=(long*)malloc(sizeof(long));
            donc c'etait un problemme de (long) qui n'avait pas etait montionner dans le tutoriel.
            et pour le stdio.h c'est une librerie qui est inclus dans le stdafx.h
            alors l'utilisation de cette librerie et necessaire.
            merci comme meme pour vos reponse.
            • Partager sur Facebook
            • Partager sur Twitter
              7 octobre 2007 à 23:34:36

              en compilant en tant que code C, le (long*) n'aurait pas été nécessaire.
              • Partager sur Facebook
              • Partager sur Twitter
                7 octobre 2007 à 23:45:35

                Citation : inteligence

                bonjour a tous
                j'ai reussit a trouve la solution
                c'est un problemme de declaration
                p=(long*)malloc(sizeof(long));
                donc c'etait un problemme de (long) qui n'avait pas etait montionner dans le tutoriel.
                et pour le stdio.h c'est une librerie qui est inclus dans le stdafx.h
                alors l'utilisation de cette librerie et necessaire.
                merci comme meme pour vos reponse.


                Tu as reçu les conseils nécessaire pour compiler ton code correctement et de manière portable.

                - L'extension doit être .c et non.cpp ni .C.

                Le code devrait être :
                Secret (cliquez pour afficher)
                1. #include <stdio.h>
                2. #include <stdlib.h>
                3. int main (void)
                4. {
                5.    long *p = malloc (sizeof *p);
                6.    if (p == NULL)
                7.    {
                8.       exit (EXIT_FAILURE);
                9.    }
                10.    printf ("entrez un nombre\n");
                11.    scanf ("%ld", p);
                12.    printf ("%ld\n", *p);
                13.    free (p);
                14.    return 0;
                15. }
                • Partager sur Facebook
                • Partager sur Twitter
                Music only !

                problemme au niveau de malloc

                × 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