计算机之家


 
标题: [原创] 关于c++的new操作
caozhihui (空空空空空空)
版主
Rank: 10Rank: 10Rank: 10


版主荣耀  
UID 36427
精华 1
积分 496
帖子 769
威望 486
现金 663 币币
存款 430 币币
阅读权限 10
注册 2007-7-25
来自 黑蝙蝠
状态 离线
 
发表于 2007-8-23 11:30  资料  个人空间  短消息  加为好友  QQ           
国际英文域名注册全部仅售48元一年
关于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);

顶部
松下顶级双核现正热卖中
 

 
 
当前时区 GMT+8, 现在时间是 2008-10-8 03:38