作者allensheng (上将帽子)
看板C_and_CPP
标题[问题] reference的使用和debug环境
时间Wed Feb 21 21:23:41 2018
开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VS2017
问题(Question):
小弟现在有个四人的共同作业
今天遇到了一个诡异的问题
两个人的电脑是可以执行的,两个人的电脑是会遇到这个bug(run time error)
最後虽然试到解决bug了(应该),但还是很在意所以上来问问
程式码(Code):(请善用置底文网页, 记得排版)
vector<shared_ptr<A>>
& function()
{
vector<shared_ptr<A>> A_list;
A_list.clear();
return A_list;
}
拿掉这个&之後就可以正常执行了
想请问原本有&的写法是不可以的吗?
或其实这个不是原因只是误打误撞刚好修到问题点..
另一个问题是为什麽会有有些电脑可以执行,有些却会跳bug的问题呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 182.236.24.16
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1519219431.A.B6F.html
1F:→ aiwhat: reference to local variable 02/21 21:28
2F:→ aiwhat: A_list的生命周期离开function时就结束了 02/21 21:29
3F:→ allensheng: 就是置底那篇第五点对吗@@? 02/21 21:36
4F:推 Ommm5566: 楼上 对 02/21 21:39
5F:→ Killercat: 回传reference你要真的知道你在做什麽 02/24 08:11
6F:→ Killercat: 除了回传*this当reference外 其他错的机率非常高 02/24 08:12
7F:→ Killercat: 另外你那个叫做undefined behavior, 从相安无事到导致 02/24 08:13
8F:→ Killercat: 川普下次当选美国总统都有可能 02/24 08:13
9F:→ PkmX: 楼上XD 02/24 15:43
10F:→ uranusjr: 川川选上就是因为 Tesla 车里有未定义行为你不知道吗 02/24 17:25
11F:推 BlazarArc: 楼上XDD 02/24 21:18
12F:→ y3k: Tesla十五年前Founded的时候 川普就已经准备好了 02/24 22:10