如何在C中不使用malloc来跟踪和排序指针?

时间:2012-07-31 02:46:39

标签: c pointers

我想知道是否有人建议跟踪和排序一些指针。每个指针指向一个包含一些元素的struct(struct1_t)。

我还需要能够(非常快速地)找到具有最多元素的struct1_t来添加新的元素(从列表中删除完整的元素),但struct1_t可能会改变它们拥有的元素数量(增量完全或减少随机),所以我需要能够快速更新此存储。所有新的struct1_t在添加时都有0个元素,或者(MAX - 1)个元素。

然而,这里的挑战是我不知道使用链表的方法,因为不幸的是,我无法使用malloc。我只能一次分配和释放整个页面(或多个)。

1 个答案:

答案 0 :(得分:1)

我认为你可以这样做,定义一个结构

struct node{
     int data;
     struct node *prev;
     struct node *next;
};

如果你不能使用malloc,你可以声明一个全局数组

struct node elements[ENOUGH_SPACE];

然后使用此数组的每个元素,如malloc的结果,如

struct node *p = &elements[i];
p->next = ...
p->prev = ...