首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关malloc和new申请空间的细节解决办法

2012-04-16 
有关malloc和new申请空间的细节RT!问题描述:用malloc和new去申请连续2个int 类型的地址空间,式子如下所示:

有关malloc和new申请空间的细节
RT!
问题描述:用malloc和new去申请连续2个int 类型的地址空间,式子如下所示:
A)int *p=(int *)malloc(sizof(int)*2)
B) int *p=new int[2];
类似于A和B的选项,申请出来空间是绝对是连续的两个int吗?

[解决办法]
A.大小为 2个int长度的一块内存.
B.貌似差不多.

[解决办法]
new内部调用malloc
[解决办法]
new里面也不可能把空间搞成不连续的两块。否则的话p[1]还能指向正确的位置吗?

new里申请内存时也只能一次申请到足够分配的,没事多申请几次干吗?找骂吗?但new有可能调用对象的构造函数,这时是不能一次完成的。不过这是在内存申请之后——要是在之前,你让构造函数往哪里写东西?
[解决办法]

探讨

new内部调用malloc

[解决办法]
c++保证数组连续存放,所以malloc,new必然连续,否则realloc也没必要在原内存位置得不到所需内存大小时,从新的位置申请内存,并把原来的内容拷过来
[解决办法]
new内部的确是用的malloc

热点排行