在C程序中使用malloc和free时,如若使用不慎,堆会出现两种类型的问题:
1、内存损坏:释放或改写仍在使用的内存。
2、内存泄露:未释放不再使用的内存。
解决内存泄露的一种简单办法:
根据需求使用alloca来分配动态内存,当离开调用alloca的函数时,它所分配的内存会被自动释放。
注:alloca是在栈(stack)上申请空间,该变量离开其作用域之后被自动释放,无需手动调用释放函数。
在C程序中使用malloc和free时,如若使用不慎,堆会出现两种类型的问题:
1、内存损坏:释放或改写仍在使用的内存。
2、内存泄露:未释放不再使用的内存。
解决内存泄露的一种简单办法:
根据需求使用alloca来分配动态内存,当离开调用alloca的函数时,它所分配的内存会被自动释放。
注:alloca是在栈(stack)上申请空间,该变量离开其作用域之后被自动释放,无需手动调用释放函数。