【问题标题】:How to split a node in a linked list say into chunks of 8 byte?如何将链表中的节点拆分为 8 字节的块?
【发布时间】:2013-10-20 17:55:37
【问题描述】:

考虑到我有一个 4MB 的节点(作为一个只有一个节点的完整链表),我如何将我的节点分成更小的块(节点),每个块只有 8 个字节?

head = (list_t*) ptr;
head->size = 4MB;
head->next = NULL;

P.S.:我正在尝试自己实现 malloc,这就是我尝试使用链表初始化内存的原因。

【问题讨论】:

  • CC++ ?选择一个

标签: c memory memory-management linked-list malloc


【解决方案1】:

您想使用这样的指针算法将偏移量连续 8 个字节进一步放入其中:

list_t *next;    
next = head + 1; /* Note that this implicitly means "1 * sizeof(list_t)" */
next->size = head->size - sizeof(list_t);
next->next = NULL;
head->next = next;

如果您仍然卡住,我可以发布一个更详细的示例。

您是在编写一个管理自己内存的链表(在这种情况下,您可能还需要一个数据指针),还是使用链表的内存管理器(在这种情况下,您可能希望它分配更多的内存比它自己使用;-))?

【讨论】:

    猜你喜欢
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 2015-07-01
    • 2019-11-25
    • 2013-11-30
    • 2021-06-14
    • 1970-01-01
    相关资源
    最近更新 更多