早教吧作业答案频道 -->其他-->
开辟内存有啥好处呀?VB里没这个不也照样用的好好地?为什么C++里要搞出来这个?举个例子说明它的优点.诸位回答的都有理,开始为什么VB不用关心回收呢?C++里必须回收.它们的机制还是有区别
题目详情
开辟内存有啥好处呀?VB里没这个不也照样用的好好地?为什么C++里要搞出来这个?举个例子说明它的优点.
诸位回答的都有理,开始为什么VB不用关心回收呢?C++里必须回收.它们的机制还是有区别的.
诸位回答的都有理,开始为什么VB不用关心回收呢?C++里必须回收.它们的机制还是有区别的.
▼优质解答
答案和解析
动态申请内存是C/C++的独有特点之一.
在处理一组未知数据个数的情况下,通常需要声明一个足够大的数组来装填这些数,比如有100到1000个整形数有待处理,那么事先申请的数组至少要有1000个整形数的静态单元,假定最后得到的数据个数为700,那么就有1000 - 700 = 300个存储空间被闲置而造成浪费.
具体的例子是,一个数据文件有N + 1行,第1行是数据个数,第2行到第N + 1行是整形数,首先读出数据个数n,利用动态申请内存时,只需定义 int *a = (int *)malloc(n * sizeof(int));,然后将下面的数据读入数组即可;如果以静态数组方式,则需在编译期间就得给出数组的大小,而不是在运行期间给出.
另外,在处理链表、队列、二叉树等数据项时,没有动态申请内存的功能是无法完成的,你想想,在VB的编程项目中,有这样的数据类型吗?没有,其根本原因就是该语言不具备这样的能力.
在处理一组未知数据个数的情况下,通常需要声明一个足够大的数组来装填这些数,比如有100到1000个整形数有待处理,那么事先申请的数组至少要有1000个整形数的静态单元,假定最后得到的数据个数为700,那么就有1000 - 700 = 300个存储空间被闲置而造成浪费.
具体的例子是,一个数据文件有N + 1行,第1行是数据个数,第2行到第N + 1行是整形数,首先读出数据个数n,利用动态申请内存时,只需定义 int *a = (int *)malloc(n * sizeof(int));,然后将下面的数据读入数组即可;如果以静态数组方式,则需在编译期间就得给出数组的大小,而不是在运行期间给出.
另外,在处理链表、队列、二叉树等数据项时,没有动态申请内存的功能是无法完成的,你想想,在VB的编程项目中,有这样的数据类型吗?没有,其根本原因就是该语言不具备这样的能力.
看了开辟内存有啥好处呀?VB里没这...的网友还看了以下:
日本被污染的那些食品怎么回事?这些辐射如何迁移到几十公里外,是因为风把带辐射的粉尘吹走,还是排出的 2020-05-17 …
Q=cm△t水可作冷却剂,是因为吸收相同热量时温度升高小.还是因为温度升高相同时,吸收的热量多?还 2020-06-07 …
债券收益率计算某张面额为100元的债券,发行价格为98元,票面利率为10%,偿还期为5年,则认购者 2020-06-30 …
在学呼吸那一课,我还是不明白胸阔收缩舒张到底是怎么回事,(注意:不是说什么隔\肋见肌收缩,我是问问 2020-07-02 …
a和b两种债券现在都以1000元面值出售,都付年息120元,a5年到期,b6年到期。如果预期收益率 2020-07-09 …
为什么收集CO2可用排饱和NaHCO3溶液的方法?类似的,还有用排饱和NaHS溶液的方法收集H2S 2020-07-20 …
设级数an为正项级数,则,级数(an)^2为何收敛?若级数(an)^2收敛,那级数an收敛还发散, 2020-07-31 …
Aspen对于吸收塔的初步模拟!小弟不才,用aspen模拟吸收塔时候遇见些许问题,无从下手,1、对于 2020-11-11 …
英语翻译如果不是收藏家,那么收藏喜爱的物品只能作为自己的一个爱好,毕竟自己还有许多工作要做,有人为了 2020-11-25 …
极点在单位圆内则表示稳定,单位圆上表示临界稳定.在单位圆外不稳定.那么零点在单位圆内和单位圆外,还有 2020-12-20 …