推 aecho:有multi-thread嗎? 08/16 21:15
※ 編輯: Zoxge 來自: 123.195.29.203 (08/16 21:16)
→ Zoxge:回a大,沒有 08/16 21:16
→ james732:有辦法把程式碼簡化到能貼上來讓大家跑嗎?真的挺怪的... 08/16 21:34
→ james732:不過把 vector 改成 list 不知道會不會有同樣狀況 08/16 21:35
推 ericinttu:不知道配新的空間是怎麼做的? 有檢查是否得到空間嗎? 08/16 21:39
→ firejox:...這是要幾個vector... 08/16 21:45
→ firejox:...ABC到底是裝什麼... 08/16 21:46
→ firejox:我蠻疑惑要怎麼去配置一個ABC... 08/16 21:50
→ firejox:原來有DEF 我錯了orz 08/16 21:53
→ james732:在想說會不會是你的 copy constructor 沒寫好 08/16 21:57
→ james732:唔,好像也跟 copy constructor 沒啥關係... 08/16 22:00
→ Zoxge:這個程式頗大的 囧 我是節錄有問題的部份 08/16 22:04
推 johnlinvc:可能ABC 有pointer member 產生 shallow copy 08/16 22:07
→ Zoxge:shallow copy是指?? 08/16 22:13
推 ericinttu:問一下原PO: 當capacity改變時的那些動作, 怎麼知道 08/16 22:13
→ ericinttu: 一定會成功呢? (有沒有類似java exception的機制?) 08/16 22:14
→ ericinttu: 來回報? 08/16 22:14
推 johnlinvc:shallow copy copy時就是只復制到ptr address 08/16 22:17
→ johnlinvc:沒有alloc 一塊新的空間 08/16 22:18
→ james732:他的vector只有存pointer,應該很單純的... 08/16 22:18
→ johnlinvc:有alloc 一塊新的空間就叫 deep copy 08/16 22:18
→ james732:總覺得問題是出在別的地方 08/16 22:19
→ Zoxge:e大:我不知道是否一定會成功 但這不是C++本身的機制嗎? 08/16 22:24
→ james732:@ericinttu: vector配置失敗會丟出std::bad_alloc 08/16 22:24
→ Zoxge:兩位j大,請問要如何知道是否有allocate新空間呢? 08/16 22:25
→ james732:我建議你先看看 ABC 跟 DEF 有哪些地方不一樣 08/16 22:26
→ Zoxge:我有個疑問,我都是用vVec.at(i)而不是vVec[i] 08/16 22:26
→ Zoxge:如果有segmenation fault的話,不是應該會提出警告嗎? 08/16 22:27
→ Zoxge:我的程式是直接回報segmentation fault,而沒有bac_alloc 08/16 22:28
→ james732:我的猜測:你的程式是錯在別的地方,跟vector無關 08/16 22:28
→ james732:不過也只是猜的...XD 08/16 22:28
→ tropical72:at(i) 失敗是丟 out_of_range 08/16 22:29
→ Zoxge:ABC和DEF要"一樣"才能以 "ABC(DEF*);" 去配置ABC嗎?? 08/16 22:34
→ james732:...對不起我錯了,跟兩者的差別沒有關係 orz 08/16 22:35
→ tropical72:我也推是 shallow copy 耶.. 08/16 22:36
→ Zoxge:我的也沒有回報 out_of_range 08/16 22:39
→ Zoxge:請問那要怎麼找出shallow copy的原因呢? 08/16 22:39
→ Zoxge:我真的沒遇過這種事情 QQ 08/16 22:40
※ 編輯: Zoxge 來自: 123.195.29.203 (08/16 23:19)
推 aecho:我也覺得應該是別的地方掛了…像是不該被free的卻free掉了? 08/17 06:37
→ aecho:那個vector只管ptr,實際的alloc和free應該不是它管的。 08/17 06:38