Я создал функцию, которая читает файл в памяти на C. Но у меня проблема с кодом, случайные символы, похоже, появляются в конце строки. Даже после того, как я добавил «\ 0» в конце. Я не понимаю этого вообще, так как весь файл появляется, и у меня нет malloc'd достаточно места для большего количества символов, так что должна быть какая-то ошибка, если есть больше символов? В любом случае, кто-нибудь знает, что вызывает это?Случайная память появляется при чтении файла
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;
}
Это звучит, как вы читаете мимо конца файла, в результате чего на выходе мусора. – Julio