是否有一个自动调整大小的数组/动态数组的C实现自带的glibc的? [英] Is there an auto-resizing array/dynamic array implementation for C that comes with glibc?

查看:186
本文介绍了是否有一个自动调整大小的数组/动态数组的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆