У тебя буфер типа int - 4 байта.
printf("%x",buffer[1]) выводит хекс-запись второго по счёту значения в буфере, а если в заголовке написано:
FFFF FF00 0000 0200
то он и выводит второе двойное слово с обратным порядком байт, т.е. 00 02 00 00 (без пробелов).
Добавлено позже:
Вообще, что значит "не работает"? У меня в 2003 всё работает, и размер определяется. Но строки "#include <iostream.h> //c++" и "clrscr" пришлось убрать.