解析一个巨大的文本文件会给我一个分段错误

时间:2017-09-23 08:38:07

标签: c segmentation-fault

我正在尝试用C解析一个相对较大的文本文件。我无法使用mallocrealloc。如您所见,应基于"/"对单词进行标记。但是,即使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, " /");
            }
        }

1 个答案:

答案 0 :(得分:0)

for (i = 0; i < 500 && fgets(buf, sizeof(buf), fp);) { }

否则我们可以获得数组越界错误并且会发生崩溃。 毕竟这是C.