C Programer  - 讨论区

标题:GLib库Memory Slices模块编程示例

2014年02月05日 星期三 11:11

Memory Slices是GLib库中的一组内存分配管理模块,当我们需要分配大量小块内存时,使用此模块会得到更加高效的内存使用效率。

编程示例如下:

#include <stdio.h>
#include <glib.h>
#include <string.h>
#include <stdlib.h>

struct Person {
    int id;
    char name[128];
    char email[128];
    int age;
};

int main(int argc,char **argv) {

    char *s=g_slice_alloc(16);
    for(int i=0;i<16;i++) {
        printf("%d ",s[i]);
    }
    printf("\n");
    g_slice_free1(16,s);
    
    s=g_slice_alloc0(16);
    for(int i=0;i<16;i++) {
        printf("%d ",s[i]);
    }
    printf("\n");
    g_slice_free1(16,s);

    struct Person *p1=g_slice_new(struct Person);
    struct Person *p2=g_slice_new0(struct Person);
    struct Person *p3=g_slice_dup(struct Person,p1);
    
    printf("p1->id: %d\n",p1->id);
    printf("p2->id: %d\n",p2->id);
    printf("p3->id: %d\n",p3->id);

    g_slice_free(struct Person,p1);
    g_slice_free(struct Person,p2);
    g_slice_free(struct Person,p3);
    

    return 0;
}

参考资料:

https://developer.gnome.org/glib/2.39/glib-Memory-Slices.html

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号