VS2010 Windows 7 で c++ を書いています。サイズ 64 バイトのファイルを読み込もうとしています。コードは次のとおりです。
BYTE* MyReadFile(FILE *f)
{
size_t result;
BYTE *buffer;
long lSize;
if (f == NULL)
{
fputs ("File error", stderr);
exit (1);
}
fseek (f, 0, SEEK_END);
lSize = ftell (f);
rewind (f);
//buffer = (BYTE*) malloc (sizeof(char)*lSize);
buffer = new BYTE[lSize];
if (buffer == NULL)
{
fputs ("Memory error", stderr);
exit (2);
}
result = fread (buffer, 1, lSize, f);
if (result != lSize)
{
fputs ("Reading error",stderr);
exit (3);
}
fclose (f);
return buffer;
}
ファイルサイズを取得すると64ですが、新しいBYTE [lSize]でメモリを割り当てると80バイトのスペースが得られるため、奇妙なシーケンスээээ««««««««оюоюがバッファの最後に追加されます。これを処理する方法を教えてください。