我在 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,但是当我用 new BYTE[lSize] 为它分配内存时,我得到 80 个字节的空间,因此奇怪的序列ээээ««««««««оюою被添加到缓冲区的末尾。你能告诉我如何处理这个吗?