我正在用C语言编写标准偏差程序,并且难以输入预期的输入。
我必须接受未知数量的浮点数,而且我不确定如何存储它们并为它们分配内存。
样本输入:
82.5 1000.6699 10 11.11 -45 #
任何建议都值得赞赏。
新用户,对您的小失误
答案 0 :(得分:0)
您可以分配一个数组来保存您的值,并且可以使用realloc()
来扩展该数组。
因为realloc()
有一些开销,所以我可能会为16个值分配足够的内存。并填充它时,然后调整其大小以容纳最多16个值,依此类推。这样,您的代码不会为每个值调整内存大小。
答案 1 :(得分:-1)
实际上只有两种方法。首先是定义一个 struct :
typedef struct {
int value;
element* next;
} element;
然后,您有了所谓的链表。您可以通过迭代链接的element
结构来访问第n个元素,并且知道element.next
是空指针(并且element->next
是SegFault或返回废话)。
第二种方法是“安全使用”并定义一个固定长度的数组,该数组是您所需的最大大小。像这样:
int my_array[65535];
这是有优势的,因为数组比链接列表快得多(您不必迭代访问第n个元素),但是如果数组长度高度可变,则分配的内存可能比必需的多得多。由您自己决定。