这是我第一次在这里发布问题 - 我搜索了类似的问题,但没有找到我发现的问题。
这是我的标题中的片段:
#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 行。
但是,如果我用本地 char[] 替换 'lineRead->buffer',我就可以完美地读取我的输入文件。
我对这里的结构有什么不了解的地方?我想我想要的是一个指向结构内 char[] 开头的指针,但显然这不是正在发生的事情。
编辑:对不起,忘了说明:我这里没有使用动态内存。