如何在C语言中输入文件中的大数据

如何在C语言中输入文件中的大数据,c,C,这是我将数据输入数组的一般方式 for(i=1to size) { scanf(%d",&a[i]); } 如果有大量的输入怎么办?就像一个包含100000个数字的文件 尺寸由终端给出 int a[size]; 就是你的代码出了什么问题。 通过使用变量为数组分配内存,该变量在堆栈上分配内存。如果您分配的资源超过了堆栈允许的数量,那么您将获得一个。。。堆栈溢出 您需要使用malloc()在堆上分配内存。您这样做的方

这是我将数据输入数组的一般方式

         for(i=1to size)
        {
            scanf(%d",&a[i]);

      }
如果有大量的输入怎么办?就像一个包含100000个数字的文件 尺寸由终端给出

int a[size];
就是你的代码出了什么问题。 通过使用变量为数组分配内存,该变量在堆栈上分配内存。如果您分配的资源超过了堆栈允许的数量,那么您将获得一个。。。堆栈溢出

您需要使用malloc()在堆上分配内存。您这样做的方式是:

int * a;
a = malloc(size*sizeof(int));

如果您想了解更多有关malloc、使用它的原因以及如何使用它的信息,google是您的朋友。

您需要动态分配阵列。使用
malloc
,不要使用可变长度数组。问题是我不知道如何使用malloc。是否可以修改此代码以从包含10万个整数的txt文件中获取输入数据?那么,在合并排序中只找到分裂反转是否有效呢?我的意思是找出inversions@saratb试试谷歌搜索malloc。你需要学习如何使用参考手册,这是基本的东西。我知道我们都需要从某个地方开始,但是能够阅读和理解手册是你需要学习的一项重要技能哦,谢谢,我会这么做的……那么从文件中输入内容呢?如何做到这一点,我的意思是我不能从命令prompt中输入那么多整数,这取决于您正在尝试做什么。您的C程序可以打开文件并开始读取,或者您可以将数据传递给您的程序(如果您使用linux,只需执行。/a.out