返回信息流我编写了两个测试函数,第一个返回一个int指针,第二个返回int,为什么第一个会出现警告“Address of stack memory associated with local variable returned”。
这个警告的意思是,a数组是在栈上的,不应该返回指针a,可是第二个测试里面,int a也是分配在栈上,为什么不警告呢
这是一条镜像帖。来源:北邮人论坛 / cpp / #90252同步于 2016/2/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
C++ 局部变量返回的问题,今天才发现,求大家解答
waitings
2016/2/10镜像同步20 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
test1返回的时候是拷贝了一份a的值,test返回的时候也是拷贝了一份,不过是拷贝了a的地址,地址虽然返回了,但是在外面引用这个地址的时候,里面的东西却不存在或者不可靠了。
【 在 YiYeShu 的大作中提到: 】
: test1返回的时候是拷贝了一份a的值,test返回的时候也是拷贝了一份,不过是拷贝了a的地址,地址虽然返回了,但是在外面引用这个地址的时候,里面的东西却不存在或者不可靠了。
对对对,非常感谢!!
啊?只是分配一个数组不至于内存耗尽吧
【 在 FromSixToTen (【意涵困】|【若晨困】|【贝由困】链域) 的大作中提到: 】
: 用new分配会造成内存耗尽,用传入空间容易造成内存溢出。
这个习惯不好,另外如果这个程序频繁调用,且机器长时间运行,那么就会把内存耗尽。良好的习惯从平时培养,阿波罗号太空飞船还不是因为一个小问题,结果花费几百亿美元,造成多人死亡,就放了一个穿天猴。@zc199102
【 在 chenxiansf 的大作中提到: 】
: 啊?只是分配一个数组不至于内存耗尽吧
。。。。。
那该怎么办
【 在 FromSixToTen (【意涵困】|【若晨困】|【贝由困】链域) 的大作中提到: 】
: 这个习惯不好,另外如果这个程序频繁调用,且机器长时间运行,那么就会把内存耗尽。良好的习惯从平时培养,阿波罗号太空飞船还不是因为一个小问题,结果花费几百亿美元,造成多人死亡,就放了一个穿天猴。@zc199102
不是。。。我说不用new分配内存应该怎么处理。。。
【 在 FromSixToTen (【意涵困】|【若晨困】|【贝由困】链域) 的大作中提到: 】
: 习惯从平时培养。