社区
非技术区
帖子详情
为什么返回值不对
mn_th
2002-02-15 09:55:39
bool CreateNode(BiTNode* node,char ch)
{
BiTNode* pnode=new BiTNode;
if(pnode==NULL)
{
return false;
}
pnode->data=ch;
node=pnode;
return true;
}
CreateNode(T,ch)l
但是T无法得到node所指向的地址,这样做不可以吗
...全文
53
9
打赏
收藏
为什么返回值不对
bool CreateNode(BiTNode* node,char ch) { BiTNode* pnode=new BiTNode; if(pnode==NULL) { return false; } pnode->data=ch; node=pnode; return true; } CreateNode(T,ch)l 但是T无法得到node所指向的地址,这样做不可以吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cjpower
2002-02-17
打赏
举报
回复
你的调用形式好象有问题,按照你的方法T是不能有什么传回值的,这个问题对于熟悉C的人多知道。
cowboy1114
2002-02-17
打赏
举报
回复
BiTNode * CreateNode(BiTNode* node,char ch)
{
BiTNode* pnode=new BiTNode;
if(pnode==NULL)
{
return NULL;
}
pnode->data=ch;
node=pnode;
return node;
}
zosatapo
2002-02-16
打赏
举报
回复
zheng_can() 的方法也是很好的方法。因为MS的com库中函数多是采用这样的方式来传输对象指针的。
zosatapo
2002-02-16
打赏
举报
回复
主要是要注意对象的生存周期。不应该返回局部变量的指针之类的东东拉,
这是最基本的c/c++常识。下面是我初步修改后的程式:
注意看注释。
bool CreateNode(BiTNode* node,char ch)
{
BiTNode* pnode=new BiTNode;
if(pnode==NULL)
{
return false;
}
pnode->data=ch;
//node=pnode;
//应该采用下面的这种形式返回局部的对象变量的拷贝
*node=*pnode;
return true;
}
实际上问题远没有这样简单的,具体的还要看你的类的定义。
比如你有没有采用虚拟指针,动态分配内存,以及你的赋值运算符,
拷贝构造函数等是如何定义的,但是一般来说上面的方式已经足够了。
loader
2002-02-15
打赏
举报
回复
CreateNode(&T,ch);
正确,应该是这么调用的!!!!!!!!!!!!!
maoxingliang
2002-02-15
打赏
举报
回复
看来你是一个初学者,你的
bool CreateNode(BiTNode* node,char ch)
{
。。。。
}
中的BiTNode *node是一个局部指针变量,函数开始时被你的参数T初始化,函数结束,其便自动消亡,我同意jinzhao2(金钊)的看法
zheng_can
2002-02-15
打赏
举报
回复
同意jinzhao2的
你应该使用引用,直接传指会导致所引起的修改只在函数内有效
或者,你可以传入指向T的指针(传址)
bool CreateNode(BiTNode**node, char ch);
调用:CreateNode(&T,ch);
Lemon-sai
2002-02-15
打赏
举报
回复
应该是可以的
可能是没有分配成功而提前退出了吧,
或者T不是指针
jinzhao2
2002-02-15
打赏
举报
回复
不可以。实际上,执行CreateNode(T,ch)时,编译器把T(一个BiTNode*类型的数据)复制了一份,所以函数中node=pnode改变的是复制值.
按你的要求可将函数定义写为:
bool CreateNode(BiTNode* &node,char ch)
就行了。
【小程序云开发】本地调试和云端测试的结果不一致,
返回值
result为null
1.调用云函数的时候,云函数调试时
返回值
不是null,但是到了前端拿到的result却是null。 2.调试云函数,本地调试和云端测试/真机测试结果不一样。表现为本地测试正常运行,云端和真机出错。 解决方法:异步操作的...
ajax
返回值
自动添加pre标签的解决方法
ajax返回,自动添加pre标签 ajax返回的内容,居然自动添加了标签 在FF,ie,谷歌浏览器中,每个返回的都不一样:ff小写,ie... 您可能感兴趣的文章:jquery ajax例子
返回值
详解jquery ajax return没有
返回值
的解决方法js
swagger @ApiModel 返回内容注释不显示问题
swagger @ApiModel 返回内容注释不显示问题 展开无类信息
AviCompress
ICCompress的
返回值
还是
不对
。不知道怎么改了。哪位做过这个的,帮我看一下这个程序吧
通过实例简单了解python yield使用方法
实例代码如下 def demo(): print(开始执行...) while 1: ...代码解释,个人理解,说得
不对
希望能够点出: d1 = demo();生成一个对象,不会输出任何内容 print(d1); 这里不输入任何内容,因为程序第一
非技术区
15,440
社区成员
58,165
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章