C でファイルをメモリに読み込む関数を作成しましたが、コードに問題があり、文字列の末尾にランダムな文字が表示されるようです。最後に「\ 0」を追加した後でも。ファイル全体が表示され、さらに文字を入れるのに十分なスペースをmallocしていないので、これはまったくわかりません。文字が増えると、何らかのエラーが発生するはずですか? とにかく、誰がこれを引き起こしているのか知っていますか?
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;
}