问答题X 纠错

参考答案:

管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memoryleak。
申请大小:栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。堆:堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。
碎片问题:对于堆来讲,频繁的new/delete势必会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低。对于栈来讲,则不会存在这个问题,因为栈是先进后出的队列,他们是如此的一一对应,以至于永远都不可能有一个内存块从栈中间弹出
分配方式:堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配。动态分配由alloca函数进行分配,但是栈的动态分配和堆是不同的,他的动态分配是由编译器进行释放,无需我们手工实现。
分配效率:栈是机器系统提供的数据结构,计算机会在底层对栈提供支持:分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较高。堆则是C/C++函数库提供的,它的机制是很复杂的。

查答案就用赞题库小程序 还有拍照搜题 语音搜题 快来试试吧
无需下载 立即使用

你可能喜欢

问答题

线程与进程的区别和联系?

参考答案:进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。程和线程的主要差别在于它们...

问答题

简述对MVC模式的理解。

参考答案:MVC设计模式考虑三种对象:模型对象、视图对象、和控制器对象。模型对象代表特别的知识和专业技能,它们负责保有应用程序的数...

问答题

#import跟#include的区别,@class呢?

参考答案:@class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文件中还是需要使用#import而#import比...

问答题

添加“源”有什么用?

参考答案:源地址一般是在Cydia中使用的是下载资源用的。你可以在Cydia中添加源,然后打开源,里面有很多软件和资源可供下载使用...

问答题

什么是联通版?

参考答案:所谓的联通版就是国内行货,全国联保。由于iPhone的3G通信只支持W-CDMA,而联通的3G也是W-CDMA。所以国内...

问答题

什么是美版?什么是港版?

参考答案:“美版”、“港版”:这是对市场上iPhone的货源地的描述,由于现在国内...

问答题

什么是五码合一?

参考答案:手机包装盒上串码+电池仓贴IMEI+*#06#出来的串号+发票上的串码+用二维码识别软件识别手机电池仓贴的二维码出来的串...

问答题

什么是四码合一?

参考答案:

机器的包装盒上的IMEI和IPHONE背面的IMEI和*#06#的IMEI和发票上的IMEI都能对上。

问答题

什么是三码合一?

参考答案:三码合一:外包装上没有塑料膜包装,盒子后面串号生产周期条码--机器后壳条码--机器*#06#按出来的串号能对上就是3码合...

问答题

App Store有什么用?

参考答案:Apple Store-苹果网络商店。其中包括音乐、视频、游戏和软件工具。注册一个免费的App Store账户之后,便可...
赞题库

赞题库-搜题找答案

(已有500万+用户使用)


  • 历年真题

  • 章节练习

  • 每日一练

  • 高频考题

  • 错题收藏

  • 在线模考

  • 提分密卷

  • 模拟试题

无需下载 立即使用

版权所有©考试资料网(ppkao.com)All Rights Reserved