// Works
int fnamesize=0;
fnamesize=message[0]<<24;
fnamesize+=message[1]<<16;
fnamesize+=message[2]<<8;
fnamesize+=message[3];
// Doesn't work
int fsize;
memcpy(&fsize,message,sizeof(int));
Может кто-нибудь объяснить, почему второй не работает? Память, которую я копирую, message
- это char *
. Когда я пытаюсь проверить значения fnamesize и fsize, например printf("fsize is %d,fnamesize is %d",fsize,fnamesize);
, fsize дает неожиданное значение, но fnamesize дает ожидаемое значение.C: Копирование из массива символов в int
Мысли?
Абсолютно верно. Написание «симулятора сетевого стека» и часть проекта работает с ntoh_ и hton_. Спасибо, что поставили меня в правильном направлении! – Joseph
Рад, что я мог бы помочь :) – MByD