1.首先,什么是动态内存分配
所谓动态内存分配(Dynamic Memory Allocation)就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。 - - - -百度百科
2.那么,为什么要进行动态内存分配?
先说原因:
1.可以动态的申请空间,以便动态确定对象所需要的内存;
2.便于储存大型对象,通常情况下栈区的大小容不下过于庞大的对象;
3.传递指针比传递整个对象更方便高效;
打个比方,有一个程序需要处理10w个学生信息,那我们需要至少给他定义一个10w个数组长度的空间,但现在我们需求变了,只需要处理1000个学生信息,那多划分出来的内存就无法被及时回收;使用这种非方法,在大多数情况下会浪费大量的内存空间,在少数情况下,当你定义的数组不够大时,可能引起下标越界错误,甚至导致严重后果
而使用动态内存,就可以完美规避这个问题。就像我们去买盐,你没必要一次性把这辈子需要吃的盐都给买了,吃完了再买,才是上策,这样优点如下:
1,不会造成浪费,基本上都是有多少用多少。
2,能够随时增加,减少。
3,程序的灵活性更高。也不会出现分配不足的问题。
网友评论