我已经制作了一个函数,可以将文件读入 C 中的内存。但是我遇到了代码问题,随机字符似乎出现在字符串的末尾。即使我在最后添加了 '\0' 。我根本不明白这一点,因为整个文件都出现了,而且我没有足够的空间来容纳更多的字符,所以如果有更多的字符,应该会有某种错误?无论如何,有人知道是什么原因造成的吗?
char* LoadSourceFile(char* filename)
{
int fileSize;
char* buffer;
struct stat handle;
FILE* bestand;
stat(filename, &handle);
if (fopen_s(&bestand, filename, "r") != 0) {
return NULL;
}
fileSize = handle.st_size;
handle.st_size++;
buffer = (char*)malloc(handle.st_size);
if (buffer == NULL) {
return buffer;
}
fread_s(buffer, handle.st_size, fileSize, 1, bestand);
buffer[fileSize] = '\0';
fclose(bestand);
return buffer;
}