C语言中,怎么检查调用一个函数之后,有无内存泄露
C语言中,如何检查调用一个函数之后,有无内存泄露。如题。 如何才能检测出内存泄露。[解决办法]如果要完全自己
C语言中,如何检查调用一个函数之后,有无内存泄露。
如题。 如何才能检测出内存泄露。
[解决办法]如果要完全自己实现的话,我有一个想法
自己写一个头文件,代替掉原来的内存分配头文件
等于是重写里面的malloc和free函数等函数
申请内存时,先调用真正的malloc函数,获得了内存指针后,将此指针做个记录
释放内存时,根据内存指针地址,把相应的记录给删除
最后,如果记录为0表示没有泄漏
调试完成后,就可以把原来的真正文件还原重新链接编译
[解决办法]这个服务程序是给一个界面系统做服务端用的,所以新增加业务的时候,免不了要调用其他人自己写的程序。所以持续运行只能检查现有程序,不能让对以后新增加的程序做限制。
我目前折中的做法是,每次子进程调用了一定(可配置的)次数之后,舍弃掉。
哎,看来是没啥好办法了。
《Unix编程艺术》