[Problème avec malloc]

Résolu
Coma white Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
kilian Messages postés 8732 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);
}

2 réponses

kilian Messages postés 8732 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
Coma white Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   1
 
Personne ne peut m'aider?? :-P
1