是否有一个自动调整大小的数组/动态数组的C实现自带的glibc的? [英] Is there an auto-resizing array/dynamic array implementation for C that comes with glibc?
本文介绍了是否有一个自动调整大小的数组/动态数组的C实现自带的glibc的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有一个动态数组在glibc的实现或任何标准的Linux库的C?我希望能够添加到列表中,而不必担心它的大小。我知道性病::矢量存在C ++,但我需要C等价的。
Is there a dynamic array implementation in glibc or any of the standard Linux libraries for C? I want to be able to add to a list without worrying about its size. I know std::vector exists for C++, but I need the C equivalent.
推荐答案
我猜你所想的的realloc 一>。但是它能够更好地包装结构中的列表的保持其当前长度的轨道
I guess you are thinking of realloc. But its better to wrap a list in a structure to keep track of its current length
例API
struct s_dynamic_array {
int allocated; /* keep track of allocated size */
int usedLength; /* keep track of usage */
int *array; /* dynamicaly grown with realloc */
};
typedef struct s_dynamic_array s_dynamic_array;
s_dynamic_array *new_dynamic_array(int initalSize);
void free_dynamic_array(s_dynamic_array *array);
int size_of_dynamic_array(s_dynamic_array *array);
s_dynamic_array *add_int_to_dynamic_array(s_dynamic_array *array, int value);
int int_at_index(s_dynamic_array *array, int index);
这篇关于是否有一个自动调整大小的数组/动态数组的C实现自带的glibc的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文