Die Konvertierung von char* zu int

Mein code nicht und gibt eine wirklich große Nummer:

#include <stdio.h>

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

mit atoi es gibt 0 zurück, irgendwelche Ideen?

Was ich versuche zu erreichen ist:
zum Beispiel im Versand "hello123", um eine server-software, server-software, sollte sich die "123" die numerische in string, dies zu tun, indem Sie diese Methode:

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;
}
was sind Sie eigentlich versucht zu erreichen?
Welche Ausgabe erwartest du???
warum *(int *)s? Erklären Sie es.
versucht man die "123" - position in meinem Netzwerk-Nachricht (in einem anderen Programm)
ich erwarte von 123...

InformationsquelleAutor | 2011-04-05

Schreibe einen Kommentar