La conversion du type char* int

Mon code ne fonctionne pas et renvoie un très grand nombre:

#include <stdio.h>

int main()
{
    char *s = "hello123";
    printf("%d\n",*(int *)s);
    return 0;
}

avec atoi elle retourne 0, des idées?

Ce que im essayant d'atteindre est:
par exemple im envoi "hello123" à un logiciel serveur, le serveur logiciel doit obtenir le "123" numérique dans la chaîne, ce 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;
}
de quoi êtes-vous en train d'essayer d'accomplir?
Ce que la sortie ne vous attendez-vous???
pourquoi à l'aide de *(int *)s? L'expliquer.
en essayant d'obtenir le "123" par la position dans mon message sur le réseau (dans un autre programme)
j'attends de 123...

OriginalL'auteur | 2011-04-05