内存管理小样

来源:互联网 发布:mac百度云客户端 编辑:程序博客网 时间:2024/04/30 08:17
#include<stdio.h>#include<stdlib.h>char *MEM;char *Free;int num;struct node{    int size;    struct node * next;    char a[0];};int slab_init(){    MEM = (char *)malloc(sizeof(char) * 100); /*初始化一块大内存*/    return 100;}char * slab_alloc(int num){        char *p;    p = MEM;    MEM -= num;    return p;}int slab_free(char *a){     Free = a;                                 /*模拟将回收内存放进空闲连表*/    printf("释放地址  %d\n",a);}int main(){    char *a;    slab_init();                              /*初始化第一块大内存*/    printf("原始数据 %d\n",MEM);     a = slab_alloc(10);                       /*请求分配10 字节*/    printf("第一次分配后 %d\n",MEM);           slab_free(a);                             /*释放*/  }
2017-02-24 22-57-59 的屏幕截图2017-02-24 22-57-59 的屏幕截图

查看原文:http://zmrlinux.com/2017/02/24/%e5%86%85%e5%ad%98%e7%ae%a1%e7%90%86%e5%b0%8f%e6%a0%b7/
0 0
原创粉丝点击