有关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有可能调用对象的构造函数,这时是不能一次完成的。不过这是在内存申请之后——要是在之前,你让构造函数往哪里写东西?
[解决办法]