嵌入式指针经常用在内存池的管理中,它的原理就是借用所分配对象大小空间的前4个字节用来存储next指针,来形成一个单链表。这样做的好处就是在每次创建对象的时候无需额外开辟4个字节的空间。它的形式如下:
所要分配内存的对象大小为8个字节
class A:
{
struct obj
{
struct obj* next; 嵌入式指针 占用4个字节
};
private:
int a;
int b;
};
案例:假设当前要分配5个这种对象的空间。则所需要的字节为40个字节。
char* chunk=(char*) malloc(40); 把分配的空间转为char类型
obj* p=(obj*) chunk; 此时将chunk转为obj类型
head=(obj*)(chunk+n) chunk+n表示下一个对象的起始地址。