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