我的问题的观点是需要使用固定大小的数组来跟踪一定数量的“对象”。
这里的对象可以像整数一样简单,也可以像非常奇特的数据结构一样复杂。并且“跟踪”这里意味着当应用程序的其他部分需要一个对象实例时分配一个对象,并在返回一个对象实例时将其重新分配给将来的分配。最后,让我使用c ++将我的问题放在更多描述性的方式。
#define MAX 65535
/* 65535 just indicate that many items should be handled . performance demanding! */
typedef struct {
int item ;
}Item_t;
Item_t items[MAX] ;
class itemManager {
private :
/* up to you.... */
public :
int get() ; /* get one index to a free Item_t in items */
bool put(int index) ; /* recyle one Item_t indicate by one index in items */
}
如何实现itemManager的两个公共函数?由你来添加任何私人会员。
答案 0 :(得分:0)
尝试一些内存分配模型,其中有不少。最简单的方法是将对象存储到项目中,并在它们之前存储该对象的大小。