社区
C++ Builder
帖子详情
返回临时变量的问题
ToConnection
2015-08-01 01:43:28
...全文
149
7
打赏
收藏
返回临时变量的问题
[图片]
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xjq2003
2015-08-04
打赏
举报
回复
CircleListNode* ret=pCurrent->next;//这个返回的是临时变量吗? return ret; 和返回pCurrent->next是一样的 等于下面代码 return pCurrent->next;
二班的码农
2015-08-01
打赏
举报
回复
楼主是想获得某个节点的数据吗? 如果只是访问数据,而不对返回的节点进行更改操作的话,这样写就可以了,而且执行效率高 如果不能保证对返回的指针数据是否会修改,可以不要采用指针,定义一个变通变量将指针数据拷贝一份,再返回一个非指针的节点就行
ToConnection
2015-08-01
打赏
举报
回复
那这样写代码不好,我改怎么写,是new一个指针吗,用完之后再删除,这样是不是很麻烦
二班的码农
2015-08-01
打赏
举报
回复
楼主, 不是觉得不是,就不是,我可以肯定回答
ToConnection
2015-08-01
打赏
举报
回复
我觉得不是临时变量
二班的码农
2015-08-01
打赏
举报
回复
不是,ret指向的内存空间并不是在函数体中开辟的堆栈空间(即局部变量) 不知道楼主具体想明白什么
ToConnection
2015-08-01
打赏
举报
回复
CircleListNode* circleList_Get(CircleLinkList* pList, int pos)
{
if (pList==NULL||pos<0)
{
cout<<"circleList_Get() paramter is error"<<endl;
return NULL;
}
CircleListNode* pCurrent=(CircleListNode*)&pList->head;
for (int i=0;i<pos;i++)
{
pCurrent=pCurrent->next;
}
CircleListNode* ret=pCurrent->next;//这个返回的是临时变量吗?
return ret;
}
上面的代码返回的是临时变量吗?
函数
返回
指针时,不能
返回
临时
变量
的地址,会出
问题
本文通过示例代码探讨了函数
返回
指针时的潜在
问题
,即
返回
局部
变量
地址导致的未定义行为。解释了由于栈空间在函数调用结束后会被释放,因此直接
返回
栈上的
临时
变量
地址是不安全的。为了解决这个
问题
,提出了两种解决方案:使用静态
变量
和使用动态内存(堆空间)。静态
变量
在整个程序执行期间保持存活,而动态内存需要手动分配和释放。这两种方法确保了指针的有效性和内存管理的正确性。
C++中
返回
临时
变量
指针
问题
本文深入探讨了一个程序示例,展示了为什么不能从函数中
返回
局部自动
变量
的地址,解释了局部
变量
与内存单元的关系,以及如何避免在编程中出现此类
问题
。
调用函数
返回
值值
临时
变量
问题
本文探讨了在C语言中,函数如何正确处理局部
变量
和
返回
值,特别是关于使用局部
变量
作为
返回
值的
问题
,以及推荐的
返回
指针类型。
osstringstrream,stringstream str()
返回
临时
变量
问题
本文详细解释了函数
返回
临时
变量
的生命周期及其在C++中的行为,特别是如何影响ostringstream的str方法
返回
值的有效性。通过具体示例展示了
临时
变量
在不同情况下的表现。
【求救贴】C++
临时
变量
返回
销毁
问题
本文探讨了C++中从函数
返回
局部
变量
引用导致的
问题
。通过两个示例对比,解释了为何在某些情况下输出结果不同,涉及到函数
返回
局部
变量
引用与
临时
对象生命周期的关系。
C++ Builder
13,872
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章