您的位置:首页 > 其它

内存分配的问题:关于malloc与free

2010-01-15 18:19 417 查看
关于内存分配,一直想看一看具体是如何实现的。这样,我们就可以更好的避免可能的问题,减少内存的碎片与泄漏,使程序更加安全。
 
还要注意的是,所提供的malloc是不是一个可重入的实现。一般地,标准库的实现都不是可重入的。因此,在一个存在重入问题的上下文中,应当采取一定的保护措施。比如,在单线程的环境中,在中断中不使用malloc与free。在多线程环境中,用互斥信号量加以保护。当然,有些RTOS中提供的对应函数是线程安全的。这一点应当在使用前了解清楚。
 
[参考资料]
1.“Inside memory management, The choices, tradeoffs, and implementations of dynamic allocation”, by Jonathan Barlett, http://www.ibm.com/developerworks/linux/library/l-memory/
2. “Deterministic dynamic memory allocation & fragmentation in C & C++”, by Colin Walls, http://www.embedded.com/222300428?pgno=1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  allocation 多线程 c