先malloc再new,如何理解它?非高手勿进。

[复制链接]
查看11 | 回复1 | 2009-1-13 16:52:45 | 显示全部楼层 |阅读模式
#include
using namespace std;
#include
int main()
{
int *a,i;
a=(int*)malloc(sizeof(int)*3);
for(i=0;i<3;i++)
{
new (&a)int();//这句如何理解?
}
/*for(int i=0;i<3;i++)
{
delete &a;//断点1
}*/
free(a);
return 0;
}
果然,进来的都是高手, totozii说的非常好,十分感谢!

回复

使用道具 举报

千问 | 2009-1-13 16:52:45 | 显示全部楼层
记得这叫做 placement new就是说在已分配的内存里面 new 对象,一般是为了调用对象的构造函数。。你可以baidu下“placement new”...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行