Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何同时计算双倍输入的数量_C_Arrays - Fatal编程技术网

C 如何同时计算双倍输入的数量

C 如何同时计算双倍输入的数量,c,arrays,C,Arrays,我试图用用户输入的数字填充数组,但我事先不知道输入的数量。例如:如果用户输入数字61252,我需要创建arr[3]并将这些数字放入其中,但是如果用户输入45101145,我需要创建arr[5] 另一种方法是,由于我希望数组的最大单元格数为12,是否有办法将少于12个输入放入数组[12]并删除剩余的单元格 这可能是一个显而易见的问题,但我似乎找不到任何关于这件事的有用信息 谢谢你的帮助。 < P>如果你使用C++,试试向量。否则,您可以分配一个数组(假设大小为10),如果需要将其变大,请使用rea

我试图用用户输入的数字填充数组,但我事先不知道输入的数量。例如:如果用户输入数字61252,我需要创建arr[3]并将这些数字放入其中,但是如果用户输入45101145,我需要创建arr[5]

另一种方法是,由于我希望数组的最大单元格数为12,是否有办法将少于12个输入放入数组[12]并删除剩余的单元格

这可能是一个显而易见的问题,但我似乎找不到任何关于这件事的有用信息


谢谢你的帮助。

< P>如果你使用C++,试试向量。否则,您可以分配一个数组(假设大小为10),如果需要将其变大,请使用realloc将其变大(假设大小为20),以此类推。

C中的数组缺少其他语言中许多更好的动态调整大小功能。考虑到您的限制,使用大小为12的数组似乎是最简单的解决方案。如果您真的希望它是动态的,那么您需要计算前面的空格数并为这么多的元素构建一个数组--
int*args=malloc((space_count+1)*sizeof(int))。或者,您需要创建一个具有一定大小的数组,并在需要更多元素时使用
realloc


这里有一个更完整的方法来解释这项技术。

在您开始获取实际输入数字之前,请询问用户将提供多少并相应地分配空间。

这必须非常小心,因为用户可能恶意(或疏忽)并提供比宣布的更多的输入,可能导致内存损坏。