я впервые публикую здесь вопрос - я искал похожие, но не нашел ничего, что нашел.
Вот фрагмент из моего заголовка:
#define LINE_LEN_MAX 256
typedef struct line_description {
char buffer[LINE_LEN_MAX + 1];
[...]
} line;
А вот фрагмент из моей основной функции:
int main(int argc, char *argv[]) {
line *lineRead;
//input: valid FILE *, read from cmdline
//char buffer[LINE_LEN_MAX + 1];
while(fgets(lineRead->buffer, LINE_LEN_MAX + 1, input) != NULL) {
[...]
memset(lineRead->buffer, 0, LINE_LEN_MAX + 1);
}
}
Я получаю сегфо. Если я закомментирую строку 'memset ()', я смогу прочитать ровно 3 строки из моего входного файла перед тем, как получить ошибку сегмента.
Однако, если я заменим 'lineRead-> buffer' на локальный символ [], я смогу отлично прочитать мой входной файл.
Что я не понимаю о структурах здесь? Я думаю, что мне нужен указатель на начало char [] внутри структуры, но, очевидно, это не то, что происходит.
РЕДАКТИРОВАТЬ: Извините, забыл указать: я не использую динамическую память здесь.