BlenderDev/DynamicList
Wikipedia,自由的百科全书
代码:
/*========================================*/
/* Access list using realloc */
/*========================================*/
typedef struct DynamicArray{
unsigned int count;
unsigned int max_item_index;
unsigned int last_item_index;
void **items;
} DynamicArray;
/*========================================*/
/* Two way dynamic list with access array */
/*========================================*/
typedef struct DynamicList {
struct DynamicArray da;
struct ListBase lb;
} DynamicList;
操作函数
代码:
DynamicList *BLI_dlist_from_listbase(ListBase *lb);
ListBase *BLI_listbase_from_dlist(DynamicList *dlist, ListBase *lb);
void BLI_dlist_find_link(struct DynamicList *dlist, unsigned int index);
void BLI_dlist_free_item(DynamicList *dlist, unsigned int index);
void BLI_dlist_rem_item(DynamicList *dlist, unsigned int index);
void *BLI_dlist_add_item_index(DynamicList *dlist,void *item,unsigned int index);
void BLI_dlist_destroy(DynamicList *dlist);
void BLI_dlist_init(DynamicList *dlist);
详细信息:
http://mediawiki.blender.org/index.php/BlenderDev/DynamicListWithAccessArray
