ACM编程技巧及算法
zmkeil
热爱科学,热爱IT通信互联网大数据
展开
-
简易的字符串内存池实现
有很多这样的应用场景:不停的产生一些字符串,并串联在一起,最后一起输出。这种场景的特点是,最终字符串的长度是不确定的。借鉴ngx_poop_t的实现,做一个简单的内存池,代码如下: typedef struct buf_list_s buf_list_t; struct buf_list_s { buf_list_t *next; /* 当一个用满时,重新申请一个,组成链表 */ buf原创 2014-03-25 22:27:07 · 684 阅读 · 0 评论 -
简易array内存池实现
应用场景:一个程序执行过程中,需要动态分配非常多的某struct,以构成链表或其它什么的。若每次都malloc,会极大地影响效率,可以预先分配一大片空间池,构成struct[]数组,要用时,从里面取一个。当该池全部用完时,自动分配下一个池。 这个方法比较通用,缺点是不具备回收功能。要想实现回收,可以在每个array元素中,添加next、prev,构成使用list、未使用list,可以参考ngin原创 2014-03-26 10:41:07 · 496 阅读 · 0 评论