《C语言》单链表——内存管理
程序员文章站
2022-06-04 11:01:38
...
Main.c
#include "MemList.h"
#define malloc MyMalloc
void main()
{
void* p1= malloc(100);
void* p2 = malloc(1002);
void* p3 = malloc(5002);
Show(Memory);
#if 0
MyFree(p1);
MyFree(p2);
MyFree(p3);
#endif
ClearMemory(&Memory);
Show(Memory);
system("pause");
}
MemList.h
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include <stdio.h>
#include <stdlib.h>
typedef struct MemInfo
{
void* P_MemAddr;
unsigned int MemSize;
}MemInfo;
typedef struct MemList
{
MemInfo* Mem;
struct MemList* P_Next;
}MemList;
MemList* Memory;
//打印链表
void Show(MemList* P_Head);
//初始化节点
void InitNode(MemList* P_Head);
//查找节点
MemList* FindNode(MemList* P_Head, void* P_Memaddr);
//添加节点(内存)
void AddMem(MemList** PP_Head, MemInfo* P_Mem);
//删除节点
void DeleteNode(MemList** PP_Head, MemList* Node);
//修改节点
void ChangeNode(MemList** PP_Head, void* P_Memaddr, MemInfo* P_Mem);
//清空内存
void ClearMemory(MemList** PP_Head);
void* MyMalloc(size_t Size);
void* ReCalloc(void* P_Memaddr, size_t NewSize);
void MyFree(void* P_Memaddr);
#ifdef __cplusplus
}
#endif
MemList.h
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include <stdio.h>
#include <stdlib.h>
typedef struct MemInfo
{
void* P_MemAddr;
unsigned int MemSize;
}MemInfo;
typedef struct MemList
{
MemInfo* Mem;
struct MemList* P_Next;
}MemList;
MemList* Memory;
//打印链表
void Show(MemList* P_Head);
//初始化节点
void InitNode(MemList* P_Head);
//查找节点
MemList* FindNode(MemList* P_Head, void* P_Memaddr);
//添加节点(内存)
void AddMem(MemList** PP_Head, MemInfo* P_Mem);
//删除节点
void DeleteNode(MemList** PP_Head, MemList* Node);
//修改节点
void ChangeNode(MemList** PP_Head, void* P_Memaddr, MemInfo* P_Mem);
//清空内存
void ClearMemory(MemList** PP_Head);
void* MyMalloc(size_t Size);
void* ReCalloc(void* P_Memaddr, size_t NewSize);
void MyFree(void* P_Memaddr);
#ifdef __cplusplus
}
#endif
上一篇: 内存管理
下一篇: python连接各种数据库的类方法