我被告知要设计一个链表模块,其中链表功能都将在一个头文件中,但内存分配(malloc)不会发生在那些模块中。 内存分配只应在main函数中进行。我无法弄清楚。帮助我。
答案 0 :(得分:0)
在main
中,您应该一次性分配足够大量的内存(内存池)。现在,在您的模块中,您需要从此池中管理(分配和释放)内存块,而不必担心malloc
。
如果你不了解内存池,请阅读 - http://en.wikipedia.org/wiki/Memory_pool。
然而,您需要解决碎片问题。在下面的步骤中,我使用位数组来标记空闲和分配的节点。
实施例 -
main
中,您分配50 * sizeof(节点)(50取决于应用程序)HTH
答案 1 :(得分:0)
:查看<sys/queue.h>
这是一个仅标题链接列表。
答案 2 :(得分:0)
您可以将此作为结构数组执行,并通过数组索引进行链接。然后可以在main
函数中分配该数组。请注意,您必须跟踪列表中的条目数,因为列表将限制为您分配的条目数。