当前位置:首页 > 内存 > 正文

动态分配内存可能发生的问题(链表动态分配内存)

  • 内存
  • 2024-06-06 19:42:48
  • 4919

一、C语言中,malloc函数动态分配内存后,如果不用free去释放,函数结束后空间会不会由系统释放?

程序中使用free释放,否则内存不会被释放。

C语言不会发布。所谓动态内存就是malloc系列函数使用的内存。

标准库中malloc函数的实现原理。了解malloc的内存存储结构,与全局变量不同,malloc在编译器编译时并不分配内存空间,而是在调用malloc函数时分配空间。有时会在中途调用free函数来释放空间。

扩展信息

free:释放malloc分配的存储空间

malloc用于向其申请一定量的内存系统如果你的程序盲目地请求内存供自己使用,那么系统可以分配给其他程序的内存就会减少,最终会没有可用的内存,最终导致系统缓慢等问题。操作和不稳定。显然,这种只求不付出的行为是不受欢迎的。因此,C语言提供了free函数将借用的内存归还给系统。

当忘记使用free释放malloc分配的内存时,说明程序存在“内存泄漏”的老毛病,因此,对于上面的程序,先使用下面的代码进行改进返回0。

参考来源:—c语言