Вот мой код:
#include <stdio.h>
int main(void) {
FILE *fp;
unsigned int i;
char bytes[512];
fp = fopen("myFile","r");
for(i = 0;i <= 512;i++) {
fread(&bytes, sizeof(bytes), 1, fp);
printf("bytes[%d]: %x\n", i, bytes[i]);
}
}
Вот ожидаемый результат
$ hexdump myFile
0000000 aa55 aa55 0060 0000 0a17 0000 b1a5 a2ea
0000010 0000 0000 614c 7563 616e 0000 0000 0000
0000020 0000 0000 0a68 0000 1001 421e 0000 0000
0000030 f6a0 487d ffff ffff 0040 0000 002f 0000
Но вот что я вижу из моей программы
bytes[0]: 55
bytes[1]: 8
bytes[2]: ffffffc8
bytes[3]: ffffffdd
bytes[4]: 22
bytes[5]: ffffffc8
bytes[6]: ffffff91
bytes[7]: 63
bytes[8]: ffffff82
Мое очевидное предположение состоит в том, что я либо адресую что-то неправильно и получаю неправильные данные обратно, либо я печатаю это неправильно и смотрю это неправильно.