C 如何同时计算双倍输入的数量
我试图用用户输入的数字填充数组,但我事先不知道输入的数量。例如:如果用户输入数字61252,我需要创建arr[3]并将这些数字放入其中,但是如果用户输入45101145,我需要创建arr[5] 另一种方法是,由于我希望数组的最大单元格数为12,是否有办法将少于12个输入放入数组[12]并删除剩余的单元格 这可能是一个显而易见的问题,但我似乎找不到任何关于这件事的有用信息C 如何同时计算双倍输入的数量,c,arrays,C,Arrays,我试图用用户输入的数字填充数组,但我事先不知道输入的数量。例如:如果用户输入数字61252,我需要创建arr[3]并将这些数字放入其中,但是如果用户输入45101145,我需要创建arr[5] 另一种方法是,由于我希望数组的最大单元格数为12,是否有办法将少于12个输入放入数组[12]并删除剩余的单元格 这可能是一个显而易见的问题,但我似乎找不到任何关于这件事的有用信息 谢谢你的帮助。 < P>如果你使用C++,试试向量。否则,您可以分配一个数组(假设大小为10),如果需要将其变大,请使用rea
谢谢你的帮助。
< P>如果你使用C++,试试向量。否则,您可以分配一个数组(假设大小为10),如果需要将其变大,请使用realloc将其变大(假设大小为20),以此类推。C中的数组缺少其他语言中许多更好的动态调整大小功能。考虑到您的限制,使用大小为12的数组似乎是最简单的解决方案。如果您真的希望它是动态的,那么您需要计算前面的空格数并为这么多的元素构建一个数组--int*args=malloc((space_count+1)*sizeof(int))代码>。或者,您需要创建一个具有一定大小的数组,并在需要更多元素时使用realloc
这里有一个更完整的方法来解释这项技术。在您开始获取实际输入数字之前,请询问用户将提供多少并相应地分配空间。这必须非常小心,因为用户可能恶意(或疏忽)并提供比宣布的更多的输入,可能导致内存损坏。