C语言中简单文本文件行计数器的问题

杰克斯

基本上,我有此功能,它可以计算文本文件中的行数,这让我很头疼。它像带有小文件的魅力一样工作(例如,具有50000行)。但是,由于某些原因,当我尝试对具有100万行的文件中的行进行计数时,会出现分段错误错误。这是代码:

int countlines(char *filename)
{
    // count the number of lines in the file called filename
    FILE *fp = fopen(filename,"r");
    int ch=0;
    int lines=0;

    if (fp == NULL)
        return 0;

    while ((ch = fgetc(fp)) != EOF)
    {
        if (ch == '\n')
            lines++;
    }
    fclose(fp);
    return lines;
}

老实说,我已经尝试了千种变化,但我不知道出了什么问题。它达到了1000000的行数,但是却给了我一个Segmentation Fault错误。任何帮助将不胜感激!

编辑:既然每个人都说它对他们有用,那么我将向您展示主要功能中的内容。

int main(int argc, const char * argv[])
{
    int X_len = countlines("/homes/myworkspace/X.txt");
    int X[X_len][4];
    printf("\n X_len = %d",X_len);
}
mg

这就是问题

int X[X_len][4];

X_len大于1000000时,您没有足够的内存用于(堆栈)数组。

尝试动态分配(堆),而不是

int (*X)[4];
X = malloc(X_len * sizeof *X);
if (X == NULL) /* error */;
// ...
free(X);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

文本文件中的元音计数器

来自分类Dev

PHP-重置计数器文本文件

来自分类Dev

文本文件中的元音计数器

来自分类Dev

从Windows读取文本文件并在C语言中的Linux服务器上编写

来自分类Dev

从文本文件读取并将行解析为C语言中的单词

来自分类Dev

C语言中的唯一单词计数器

来自分类Dev

使用Sqlite计数器并行配置数百万个文本文件?

来自分类Dev

在C语言中读取文本文件并将值分配给数组时出错

来自分类Dev

在C语言中将文本文件拆分为单词

来自分类Dev

在C语言中逐行读取带有strtol的文本文件

来自分类Dev

为什么我不能使用Visual Studio在C语言中读取文本文件?

来自分类Dev

在Unix上的C语言中读取一行文本文件-我的read_line损坏了吗?

来自分类Dev

计数文本文件的行数时出现问题

来自分类Dev

如何在C语言中检测换行计数器与较大负值之间的差异

来自分类Dev

如何在C语言中检测换行计数器与大负值之间的差异

来自分类Dev

简单的Python循环计数器问题

来自分类Dev

C ++中的简单文本文件加密

来自分类Dev

使用sed修复有问题的文本文件的行

来自分类Dev

序言中的计数器

来自分类Dev

C#写入文本文件问题

来自分类Dev

文本文件问题 (Visual C++)

来自分类Dev

尝试制作一个简单的程序(用C语言编写),将所有非空行从给定文本文件复制到新文本文件中

来自分类Dev

文本文件fscanf问题

来自分类Dev

C编程-从文本文件读取特定行

来自分类Dev

在文本文件中访问最后6行C ++

来自分类Dev

从C中的文本文件读取前N行

来自分类Dev

C编程读取文本文件的特定行

来自分类Dev

C编程-从文本文件读取特定行

来自分类Dev

在文本文件中访问最后6行C ++

Related 相关文章

热门标签

归档