2007-8-23 11:30
caozhihui
关于c++的new操作
示例代码如下:
constr *p = NULL;
int icount;
inittest(p,icount);
if(NULL == p)
..
else ...
constr是个结构体,inittest是个函数,我在inittest函数里面有这样的操作:
p = new constr;
我的问题是,我在inittest函数里面new了内存给p,但是传回到主函数,p还是NULL,没有改变,这是为什么?
因为这是传值操作 ,不改变实参
一般对于指针的初始化最好这样
constr *p = NULL;
int icount;
inittest(&p,icount)
{
(*p) = new constr;
}
当然函数的声明就是这样
Return_Type Inittest(constr **p, int icount);