计算机之家 » 『 软件讨论 』 » 关于c++的new操作


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);

页: [1]
查看完整版本: 关于c++的new操作


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.