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

动态内存分配的意义(什么是动态内存分配)

  • 内存
  • 2024-06-04 04:20:56
  • 7891

一、什么叫动态内存分配?有什么用.?所谓动态内存分配是指在程序执行过程中动态分配或存储存储空间的内存分配方法。动态内存分配不需要像storage等静态内存分配方法那样预先分配存储空间。但系统会根据程序的需要自动进行排列,分配的大小就是程序需要的大小。
动态内存的好处可以用8个字来概括:我会用它,我不会放过它!


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

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

C语言不会发布。所谓动态内存就是malloc系列函数使用到的内存,除非程序中使用了free,否则这块内存不会被释放。

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

扩展信息

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

Malloc用于释放固定数量的内存。向系统提出申请。如果你的程序盲目地申请内存供自己使用,那么系统可以分配给其他程序的内存量就会减少,最终就会没有可用的内存,最终导致系统缓慢等问题出现。运行不稳定。显然,这种简单请求而不返回的行为是不可取的,因此C语言提供了free函数将借用的内存返回给系统。

当你忘记使用free释放malloc分配的内存时,表明程序存在“内存泄漏”的老问题,因此,对于上面的程序,要修复这个问题,请使用以下代码返回之前0.

参考来源:—C语言