如何将一片内存链接成链表 - Zero Lee
Zero Lee
·
2012-06-17
·
via 博客园 - Zero Lee
假设有一片内存,大小为m*n, m是每个单元的大小,而且>=8,共有n个这样的单元,如何将它们链接成n个节点的链表,要求不再使用任何其它内存空间。这里给出SGI STL内存分配器的一个简单实现:首先定义一个union数据结构:1 union obj {2 union obj* free_list_link;3 char client_data[1];4 };这个union结构体的最大大小为4bytes (在32bits 平台上),8bytes (在64bits平台上)。假设那片内存的地址为chunk,那么我们可以这样做: 1 obj* current_obj, *next_o...
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。