早教吧 育儿知识 作业答案 考试题库 百科 知识分享

开辟内存有啥好处呀?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的编程项目中,有这样的数据类型吗?没有,其根本原因就是该语言不具备这样的能力.
看了开辟内存有啥好处呀?VB里没这...的网友还看了以下: