Mon code échoue et renvoie un nombre vraiment grand:Conversion de char * en int
#include <stdio.h>
int main()
{
char *s = "hello123";
printf("%d\n",*(int *)s);
return 0;
}
avec atoi elle retourne 0, des idées?
Quelle im essayant d'obtenir est: par exemple im envoyer « hello123 » à un logiciel serveur, le logiciel serveur doit obtenir le numérique « 123 » dans la chaîne, faisant par cette méthode:
uint16_t get_uint16(NetworkMessage *message)
{
uint16_t ret = 0;
if (!message || !message->buffer)
return 0;
ret = *(uint16_t *)(message->buffer + message->position);
message->position += sizeof(uint16_t);
return ret;
}
ce que vous en train d'essayer d'accomplir? –
Quelle sortie attendez-vous ??? – Macmade
pourquoi utiliser '* (int *) s'? Explique le. –