我正在尝试用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, " /");
}
}
答案 0 :(得分:0)
for (i = 0; i < 500 && fgets(buf, sizeof(buf), fp);) { }
否则我们可以获得数组越界错误并且会发生崩溃。 毕竟这是C.