Я хочу обработать содержимое файла конфигурации.Файл конфигурации может быть любого размера.Я получаю ошибку шины после зависания программы, когда я запускаю следующий код:
FILE *fp;
struct stat st;
char *buffer;
fp = fopen(CONFIG_FILE, "r");
if (fp == NULL) {
// error handling and cleanup omitted for brevity
}
fstat(fileno(fp), &st);
fread(buffer, sizeof(char), st.st_size, fp);
fprintf(stderr, "%s\n", *buffer);
fclose(fp);
Я прочитал, что ошибка шины может быть вызвана переполнением буфера.Я почти уверен, что получаю переполнение буфера с моим char *buffer
.Но тогда, как я могу указать размер буфера во время выполнения?
EDIT - Ошибка шины была вызвана моей ленью жесткого кодирования 1
Фред зов.Пример кода был обновлен, чтобы исправить это, вместо этого используется sizeof(char)
.