readdir()在多线程操作中不安全,Linux提供了readdir_r()实现多线程读取目录内容操作。#include
#include #include int main(void){ DIR* dirp; struct dirent
*dp1=malloc(sizeof(stru...
分类:
其他好文 时间:
2014-05-12 13:34:35
阅读次数:
914
一.如何动态分配多维数组?
1.分配一个指针数组,然后把每个指针初始化为动态分配的行
代码如下:
int **array = (int **)malloc(ROW * sizeof(int*));
int i = 0;
for(i=0; i<ROW; i++){
array[i] = (int *)malloc(COL...
分类:
编程语言 时间:
2014-05-11 15:09:16
阅读次数:
349
也许我使用的x264库比较原始,但经过测试,x264的库存在内存泄露.面对内存泄露,如何在尽量少改动的前提下解决这个问题。
下面是我解决的思路:
由于x264相关的内存分配与释放都有封装一层函数,我们可以在从这两个函数入手。将分配的内存记录到一个链表中,释放时从链表中删除。程序执行完后,
如果链表中有记录,说明是内存泄露,清空链表即可。
所以具体操作如下:
1.增加一个链表;
2.修改x264_malloc函数,将分配的内存记录在链表中;
3.修改x264_free函数,从链表中释放节点;
4.最后统一...
分类:
其他好文 时间:
2014-05-11 01:50:43
阅读次数:
322
昨天晚上我们进行了第一次小组赛,做的是12年的湘潭市比赛的题,我们队只ac了两个题,做这次题的时候,感觉是挺简单的,我们就开始着手做,提交了好几次都是TLE,后面就基本一直在搞这个题,对这个题进行优化,一直到最后,我们还是没能ac。。程序的优化真的很重要啊,特别是比赛的时候,在选对算法后,还要对算法进行一定的优化,在一次一次的优化后,找到更加好的方法,这才是算法的魅力所在吧。今天早上在网上搜了一下...
分类:
数据库 时间:
2014-05-10 10:39:37
阅读次数:
520
链表中结点的分配和回收是由系统提供的标准函数malloc和free动态实现的,称之为动态链表。
如果程序支持指针,则可按照我们的一般形式实现链表, 需要时分配,不需要时回收即可.
动态链表的空间是可以动态扩展的。
typedef struct node{
EleType data;
struct node * pNext;
}Node;
有些高级语言中没有“指...
分类:
其他好文 时间:
2014-05-10 10:38:07
阅读次数:
297
memcached的内存分配没有用到c语言中自带的malloc函数,因为这个函数分配内存的时候效率很低,对于这种要求快速响应,对效率要求非常高的缓存软件来说非常不合适。memcached用的是自己的一套内存分配方法,叫做slab
allocation。Memcache单进程最大可开的内存是2GB,如...
分类:
其他好文 时间:
2014-05-09 04:34:29
阅读次数:
338
最近在做视频处理方面的东西,做到实时处理,内存泄漏是很致命的。网上找了好多方法,试了一种比较好的,在此分享一下。1.常规内存泄露的检测常规内存泄露一般是由于编程者在手动申请内存空间之后没有释放造成的。如用new、malloc()函数或CString的GetBuuffer()函数申请内存空间后没有使....
分类:
其他好文 时间:
2014-05-08 19:44:24
阅读次数:
264
1,遇到的问题就是 redis 2.8 版本依赖 Google 的 TCMalloc
TCMalloc(Thread-Caching Malloc)是google开发的开源工具──“google-perftools”中的成员。与标准的glibc库的malloc相比,
TCMalloc在内存的分配上效率和速度要高得多,可以在很大程度上提高MySQL服务器在高并发情况下的性能,降低系统负载...
分类:
其他好文 时间:
2014-05-07 05:41:35
阅读次数:
344
1、无法登陆TP-LINK路由器 原因是电脑的IP地址不是192.168.1.X;
设置电脑的无线连接的静态IP为192.186.1.2;登陆路由器即可 2、没有用malloc给q分配内存的错误提示 3、定义函数出现的错误
假如A函数要用到B()函数:那么B函数一定要定义在A函数之前,下面的情况会出...
分类:
其他好文 时间:
2014-05-05 10:48:05
阅读次数:
350
调用函数时,主调的函数所拥有的局部变量等信息需要存储在特定的内存区域。这个区域被称作栈内存区。另一方面,利用new 或者malloc
进行分配的内存区域被称为堆内存。栈内存在程序启动时被统一分配,此后不能再扩大。由于这一区域有上限,所以函数的递归深度也有上限。虽然与函数中定义的局部变量的数目有关,不...
分类:
其他好文 时间:
2014-05-05 09:40:45
阅读次数:
294