[Problème avec malloc]

Résolu/Fermé
Coma white Messages postés 5 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 21 décembre 2006 - 20 déc. 2006 à 19:02
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 22 déc. 2006 à 02:55
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
22 déc. 2006 à 02:55
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 mercredi 21 septembre 2005 Statut Membre Dernière intervention 21 décembre 2006 1
21 déc. 2006 à 02:20
Personne ne peut m'aider?? :-P
1