我正在寻找一本好的资源/书来了解C ++中的内存泄漏。 我使用Linux Ubuntu和QtCreator作为IDE(有没有办法在那里看到它们?)。
答案 0 :(得分:3)
什么是内存泄漏?
当计算机程序占用内存但无法将其释放回操作系统时,会发生内存泄漏。在C / C ++中,只要程序在堆上分配动态内存,它也应该释放相同的内存,否则会导致内存泄漏。
在C中,使用函数malloc
在Heap上分配动态内存,通过显式调用函数free
来回收相同的内存。
在C ++中,使用运算符new
或new[]
在Heap上分配动态内存,同样通过delete
或delete[]
回收。
有关内存泄漏的更多信息?
您可以找到许多在线教程和书籍,以了解有关遇到内存泄漏的各种常见场景的更多信息
Here是一个非常有价值的在线教程。
如何检测到内存泄漏?
各种商业和开源工具可用于检测各种平台的内存泄漏和内存损坏。既然你特意要求Linux平台。
您可以使用Valgrind
这是Linux中非常有效的内存泄漏检测工具。
答案 1 :(得分:1)
使用任何优秀的C ++书籍/资源。 了解有关动态分配内存的所有信息以及与自动变量的区别。
通过良好的软件设计可以避免大部分内存泄漏。
当您在代码中遇到内存泄漏时,您必须使用您对它们的了解以及 Valgrind 等工具来检测和收集有关它们的信息。