[Problème avec malloc]

Résolu
Coma white Messages postés 5 Statut Membre -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour. Je travaille avec c++.
Après compilation de ce code, j'obtiens le message d'erreur suivant : invalid conversion from ‘void*’ to ‘int*’

Q uelqu'un peut-il me dire ce qui bug? merci
Voici mon code :

#include<stdio.h>
#include<stdlib.h>
int *a;
main()
{
a=malloc(sizeof(int));
*a=2;
free(a);
}
Configuration: Linux
Epiphany 1.8.2

2 réponses

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Salut,

    C'est parce que malloc que retourne un pointeur de type void et que tu essaies d'assigner sa valeur de retour à a qui est un pointeur de type int.
    Il faut faire une conversion:
    a=(int *) malloc(sizeof(int));

    Et voilà....

    http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/malloc.3.html
    19
  2. Coma white Messages postés 5 Statut Membre 1
     
    Personne ne peut m'aider?? :-P
    1