我使用Code :: Blocks在C中编写代码。据我所知,它结合了文本编辑器,编译器和调试器。
我担心的是,在不使用malloc
函数的情况下使用free
命令是否会导致内存泄漏,或者每次从Code运行程序后,Code :: Blocks是否会自行清理: :块
答案 0 :(得分:0)
你是对的,Codeblocks是一个集成的开发环境,但它不是C ++运行时。它只与编译器集成,无法控制代码的执行。
每当您致电malloc
时,您都必须致电free
。执行代码的平台将在程序终止后回收泄漏的内存,但这不是Codeblocks或操作系统的责任。
切勿在不致电malloc
的情况下致电free
。
答案 1 :(得分:0)
嗯,CodeBlocks只是一个IDE,这意味着您可以使用它编辑,编译,调试和运行代码。但是,软件本身(我的意思是CodeBlocks)不会打扰或影响您在RUNTIME中编写的程序。
在“构建并运行”代码之后,操作系统将提供程序资源(内存和CPU等),但操作系统也无法“重写”您的程序。
为避免内存泄漏,在调用分配器(free
或calloc
)并使用内存后,应记住malloc
内存。
要了解有关C中内存使用技巧的更多信息,您可以阅读CSAPP的第9章虚拟内存。