C/C++动态申请内存与数组的初始化..
int*p=newint[3];//怎么在定义时初始化各数组元素,而不是在定义后初始化point*p_p=newpoint[2];//point为类,怎么在定义时用已经定...
int *p=new int [3]; //怎么在定义时初始化各数组元素,而不是在定义后初始化
point *p_p=new point [2];
//point 为类,怎么在定义时用已经定义的对象p1,p2初始化申请 的 该对象数组,而不是用默 认构造函数来初始化它。 展开
point *p_p=new point [2];
//point 为类,怎么在定义时用已经定义的对象p1,p2初始化申请 的 该对象数组,而不是用默 认构造函数来初始化它。 展开
1个回答
展开全部
对于简单类型int *p=new int(5);
这个是可以的,但是数组和class是不可以的。。。
如果要做到你那样,我推荐你把new operator重载掉来实现你的行为
inline void *
operator new[] (size_t bytes,void* pArray) {
//分配内存,并将pArray内容拷贝到新分配的内存上
}
使用的时候
point pArray[2];
pArray[0] = p1;
pArray[1] = p2;
point* p_p = new(pArray) point [2];
这个是可以的,但是数组和class是不可以的。。。
如果要做到你那样,我推荐你把new operator重载掉来实现你的行为
inline void *
operator new[] (size_t bytes,void* pArray) {
//分配内存,并将pArray内容拷贝到新分配的内存上
}
使用的时候
point pArray[2];
pArray[0] = p1;
pArray[1] = p2;
point* p_p = new(pArray) point [2];
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询