Bonjour,
je suis assez débutant en C, et j'en chie comme un malade pour piger ces histoires de pointeurs; y a-t'il une différence entre char* toto et char *toto ?
J'essaie d'utiliser un tout petit bout de code qui convertit un entier long en adresse internet pointée :
Je voudrais la mettre dans un printf et je n'y arrive pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 char* long2ip(unsigned int v) { struct in_addr x; x.s_addr = htonl(v); // passe dans l' ordre reseau return inet_ntoa(x); // et convertit }
Ça plante soit à la compilation soit à l'exécution en segmentation fault, selon les différents essais que je fais, comme ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("long2ip=%s\n",long2ip((unsigned int)hostinfo->h_addr));
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 scan.c: Dans la fonction «long2ip» : scan.c:49: attention : return makes pointer from integer without a cast
David
Partager