gpt4 book ai didi

c - 如何将链表中的节点拆分为 8 字节的 block ?

转载 作者:行者123 更新时间:2023-12-04 04:38:22 24 4
gpt4 key购买 nike

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

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

P.S.:我试图自己实现 malloc 这就是为什么我试图使用链表初始化内存。

最佳答案

您想使用如下指针算法将偏移量连续 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;

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

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

关于c - 如何将链表中的节点拆分为 8 字节的 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19338692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com