我正在尝试用 C 语言解析一个相对较大的文本文件。我无法使用 malloc
或 realloc
。如您所见,单词应基于 "/"
进行标记。但是,即使 i
更改了数组的大小,下面的代码也会出现段错误。
char buf[1000];
char *token;
char tags[500][1000];
FILE *fp = fopen("file.txt", "r");
for (i = 0; fgets(buf, sizeof(buf), fp);) {
token = strtok(buf, " /");
while (token != NULL) {
strcpy(tags[i], token);
i++;
token = strtok(NULL, " /");
}
}
最佳答案
for (i = 0; i < 500 && fgets(buf, sizeof(buf), fp);) { }
否则我们可能会遇到数组越界错误并发生崩溃。 毕竟这是C。
关于c - 解析一个巨大的文本文件给我一个段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46377701/