加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
MemoryBlock.h 649 Bytes
一键复制 编辑 原始数据 按行查看 历史
caoguangjing 提交于 2022-05-31 11:51 . 内存池
#pragma once
#include <stdlib.h>
#include <string.h>
typedef unsigned short USHORT;
inline static void*& NEXT_OBJ(void* obj)//抢取对象头四个或者头八个字节,void*的别名,本省是内存,只能我们自己取
{
return *((void**)obj); // 先强转为void**,然后解引用就是一个void*
}
struct MemoryBlock
{
//链表前后指针
MemoryBlock* prev;
MemoryBlock* next;
int mSize;//分配MemoryBlock总字节大小。
int count;//分配的总数
int free_count;//未分配块个数
void* start = nullptr;//内存的起始位置
void* free_list = nullptr;//未分配内存的起始位置
//Padding
MemoryBlock(USHORT = 1, USHORT = 0);
void Push(void* obj);
void* Pop();
~MemoryBlock();
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化