fread가 제대로 작동하지 않습니다.

cjy1126의 이미지

메모리를 저장해볼려고 아래와 같이 data 구조체에 저장하였습니다.

typedef _DATA{
   int address;
   int value;
}DATA;

...

fwrite(&data, sizeof(data), 1, fRead);
fprintf( fResult, "%08x : %02x\n", data1.hex, data1.value);

제대로된 값인가 저장해본 fResult의 출력은 아래와 같습니다.

00020000 : 00
00020001 : 10
00020002 : 00
00020003 : 00
00020004 : 04
00020005 : 09
00020006 : 00
00020007 : 00
00020008 : 01
00020009 : 00
0002000a : 00
0002000b : 00
0002000c : 00
0002000d : 00
0002000e : 00
0002000f : 00
00020010 : 00
00020011 : 00
00020012 : 00
00020013 : 00
00020014 : 00
00020015 : 00
00020016 : 00
00020017 : 00
00020018 : 00
00020019 : 00
0002001a : 00
0002001b : 00
0002001c : 01
...

fwrite로 저장한 값을 fread로 읽었습니다.

fread(&data, sizeof(data), 1, fRead);
fprintf( fResult, "%08x : %02x\n", data.hex, data.value);

읽은 결과를 출력한 fResult의 결과입니다.

00020000 : 00
00020001 : 10
00020002 : 00
00020003 : 00
00020004 : 04
00020005 : 09
00020006 : 00
00020007 : 00
00020008 : 01
00020009 : 00
0002000a : 00
0002000b : 00
0002000c : 00
0002000d : 00
0002000e : 00
0002000f : 00
00020010 : 00
00020011 : 00
00020012 : 00
00020013 : 00
00020014 : 00
00020015 : 00
00020016 : 00
00020017 : 00
00020018 : 00
00020019 : 00
00020019 : 00
00020019 : 00
00020019 : 00
...

00020019 이후에의 데이터를 못읽습니다.

계속 20019만 반복되네요. 어떤 문제인지 알고싶습니다.

지금 하는것이 메모리 비교입니다.

메모리의 내용이 파일로 제대로 저장은 되는데, 다시 꺼내서 쓰질 못하니 답답합니다.

조언 부탁드립니다.[/code]