作者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://www.ptt.cc/bbs/C_and_CPP/M.1519219431.A.B6F.html
→ aiwhat: reference to local variable 02/21 21:28
→ aiwhat: A_list的生命週期離開function時就結束了 02/21 21:29
→ allensheng: 就是置底那篇第五點對嗎@@? 02/21 21:36
推 Ommm5566: 樓上 對 02/21 21:39
→ Killercat: 回傳reference你要真的知道你在做什麼 02/24 08:11
→ Killercat: 除了回傳*this當reference外 其他錯的機率非常高 02/24 08:12
→ Killercat: 另外你那個叫做undefined behavior, 從相安無事到導致 02/24 08:13
→ Killercat: 川普下次當選美國總統都有可能 02/24 08:13
→ PkmX: 樓上XD 02/24 15:43
→ uranusjr: 川川選上就是因為 Tesla 車裡有未定義行為你不知道嗎 02/24 17:25
推 BlazarArc: 樓上XDD 02/24 21:18
→ y3k: Tesla十五年前Founded的時候 川普就已經準備好了 02/24 22:10