malloc(); et visual studio
bonjour !
Encore une question sur une fonction en C!!
On vient de voir les pointeurs en cours, et chez moi, sous visual studio c++, lorsque j'essaye de compiler :
Code:
1 2 3 4 5 6 7
| void main()
{
int *ptab;
*ptab = (int *)malloc(sizeof(int));
//printf("%d\n",*(ptab+1));
system("pause");
} |
j'ai l'erreur suivante: error C2440: '=' : cannot convert from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Je n'arrive pas à comprendre l'erreur...
Re: malloc(); et visual studio
Citation:
Envoyé par Spike Spiegel
Code:
1 2 3 4 5 6 7
| void main()
{
int *ptab;
*ptab = (int *)malloc(sizeof(int)); <-----------------
//printf("%d\n",*(ptab+1));
system("pause");
} |
Sur la ligne flechée, tu déréférences ta variable ptab en mettant l'étoile devant. Tu désignes donc la valeur de ce pointeur, or malloc renvoie un pointeur.
Il faut donc enlever l'étoile.
*ptab = valeur de ton entier
ptab = adresse de ton entier
a+