00问答网
所有问题
请教理论,为什么需要“动态”分配内存空间?
变量直接申明就可以使用,数组也是,
那么“动态”分配内存空间的作用是什么呢?
举报该问题
推荐答案 2008-12-20
我举例子和你说下吧:
我也刚刚学C++,对其理解也不是很深刻,希望对你有用。
节省资源:
比如说,当一个程序,它可以处理很多东西,
1, 可以处理一个五万人的学校的所有学生的资料。
2, 可以处理一个几十人的小班级。
1)如果你用静态的分配,比如说,数组。当你知道要处理这些问题的时候,你需要定义一个50000 长度的数组才能解决问题。
这时候,当你用这个程序去处理班级资料。这里分配的大量的内存地址都会造成了浪费。
2)你要处理50000人以上的学校的资料,又会出现分配不足的问题。需要重新修改代码。(这就是很麻烦的事情了)
这个在C++上叫溢出。
3)使用动态分配内存的好处。
动态的话,就是你使用多少,就用多少。
根据你输入的数据大小来分配内存。
比如说,这个程序处理50人的小班级,则会分配50个空间。
当增加一个人的时候,则程序就能自动在后面再加一个空间。
来给你使用。
这样优点如下:
1,不会造成浪费,基本上都是有多少用多少。
2,能够随时增加,减少。
程序的灵活性更高。也不会出现分配不足的问题。
专业语言不怎么清楚,希望对你理解不会造成太大的影响。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/0IeejTBe.html
其他回答
第1个回答 2008-12-20
动态分配,可以在像数组那样开辟空间进行存储,之后可以释放空间,减少没必要的内存开销,“不容易塞车”
第2个回答 2008-12-20
当你在声明数组时,你必须用一个编译时常量指定数组的长度。但是,数组的长度常常在运行时才知道,这是由于它所需要的内存空间取决于输入数据。例如,一个用于计算学生等级和平均分的程序可能需要储存一个班级所有学生的数据,但不同班级的学生数量可能不同。在这种情况下,我们就可以采取动态分配的方法。一个班需要多少学生的数据,就开辟多少存储空间。这样既可以防止浪费,有可以防止溢出。
在使用动态分配时,需要程序员自己释放所开辟的内存,这点值得注意
参考资料:
C和指针
相似回答
内存条
是的工作原理是
什么,
是怎么
分配空间,
和释放内存的
???
_百度知...
答:
1.内存寻址 首先
,内存
从CPU获得查找某个数据的指令,然后再找出存取资料的位置时(这个动作称为“寻址”),它先定出横坐标(也就是“列地址”)再定出纵坐标(也就是“行地址”),这就好像在地图上画个十字标记一样,非常准确地定出这个地方。对于电脑系统而言,找出这个地方时还必须确定是否位置...
SQL服务器
内存
怎么
动态分配
答:
控制程序可使用的内存数量。动态分配允许管理员声明一块内存的大小
;考虑到它的实际使用,SQL服务器可以分配给其需要占用的内存的最大值,并且(理论上)在没有使用内存的情况下将其释放。静态分配则是创建一块固定的内存空间,提供给SQL Server使用——不再进行分配。在默认情况下,SQL Server被设置成动...
C语言是创建数组快还是
动态分配内存
快
答:
动态分配内存
是在堆上,直接创建数组是在栈中,虽然都是在内存,但性能还是有点区别的 栈是机器系统提供的数据结构,计算机会在底层对栈提供支持:分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较高。堆则是C/C++函数库提供的,它的机制是很复杂的,例如为了分配一...
JAVA虚拟机
内存分配
与回收机制
答:
Java的堆是一个运行时数据区,类的(对象从中
分配空间
。这些对象通过new、newarray、anewarray和multianewarray等 指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时
动态分配内存
的,Java的垃圾收集器会自动收走这些...
大家正在搜
为什么要动态分配内存
c语言为什么要动态分配内存
静态存储分配和动态存储分配
动态分配内存有什么用
动态分配内存在小内存
动态分配内存可能发生的问题
动态分配内存格式
heap一般用于动态分配内存
动态分配内存函数
相关问题
请教理论,为什么需要“动态”分配内存空间?
什么叫动态内存分配?有什么用.?
操作系统 为什么需要动态存储分配
为什么要使用动态内存分配函数malloc,怎样使用mallo...
关于为什么要进行人工的动态分配内存
c语言什么时候需要动态分配内存?
关于动态分配内存
什么情况下要用malloc动态分配内存