[問題] vector大小不受控制了

看板C_and_CPP (C/C++)作者 (sapphira)時間16年前 (2009/04/07 17:56), 編輯推噓4(407)
留言11則, 4人參與, 最新討論串1/1
我是用VC.net 2005寫的 今天在新增一個VECTOR時 http://rafb.net/p/0GaGMj46.html vector<int> LBt; 到後面 int newsize=10; int size; LBt.resize(newsize) ; size=LBt.size() // ==10沒錯 可是在偵錯中的變數欄裡面,一點開LBt,就會出現系統提示超過10000筆之類的 實在不懂哪來的.... 好像還會增加, vector<int> 是測試用的,真的有用的 vector<MyClass>, 這個類別很大,放著一下就當機了.... 大概是甚麼原因呢?

04/07 18:06, , 1F
當然是因為亂用記憶體呀
04/07 18:06, 1F

04/07 18:13, , 2F
怎麼說?vector的記憶體不是系統自動連續配的嗎?
04/07 18:13, 2F

04/07 19:52, , 3F
結果好像是沒辦法在 Global Scope 理宣告vector?
04/07 19:52, 3F

04/07 19:53, , 4F
我改在 function scope 裡宣告就都正常.怪
04/07 19:53, 4F
reambeam()就像裡面有一個vector<int> avec,這個初始化完的超做就完全正常. 就算換成vector<Beam> avec(10)也沒問題. class Beam 太雜 就先不給囉

04/07 20:23, , 5F
full source code
04/07 20:23, 5F

04/07 20:39, , 6F
http://rafb.net/p/0GaGMj46.html 去掉其他多的東西了.
04/07 20:39, 6F
※ 編輯: lytn 來自: 140.113.130.186 (04/07 20:43) ※ 編輯: lytn 來自: 140.113.130.186 (04/07 20:44)

04/07 20:47, , 7F
我這邊沒問題
04/07 20:47, 7F
我新開一個 windows form 專案. 自動產生一個 From1.h,指拖了一個textbox上去, 增加 Form_Load 事件 http://rafb.net/p/SNtaUX79.html 在Form1_load事件裡 testvec.resize(20);這行增加中斷點. 直行到這裡以後,用滑鼠圈起變數,右鍵,新增監看式時 就會有 識別向'testvec'超過範圍 這是新專案,應該就跟我其他城市沒關係了吧? ※ 編輯: lytn 來自: 140.113.130.186 (04/07 21:18)

04/07 21:39, , 8F
this->textBox1 ->Text =avec.size().ToString() ;
04/07 21:39, 8F

04/07 21:40, , 9F
為什麼 -> 左邊會有個空白?是貼上去的程式碼的問題?
04/07 21:40, 9F

04/07 21:40, , 10F
還是codes本身就有空白呢?
04/07 21:40, 10F

04/07 21:44, , 11F
那個是 自動完成時按的空白 不影響
04/07 21:44, 11F
文章代碼(AID): #19soD3p9 (C_and_CPP)
文章代碼(AID): #19soD3p9 (C_and_CPP)