Re: [問題] vector當array傳 該怎作
看板C_and_CPP (C/C++)作者littleshan (我要加入劍道社!)時間16年前 (2010/04/30 14:10)推噓2(2推 0噓 3→)留言5則, 2人參與討論串2/3 (看更多)
※ 引述《QQ29 (我愛阿蓉)》之銘言:
: 大家好
: 有個小疑問
: 假如我並不知道使用者會輸入多少個資料
: 有個vector<Vector3> DataList;
: 通常win32 API也不會叫我們傳vector
: 所以如果有個函式Foo (吃 Vector3[])
: 大家都是傳 &DataList[0]??
: 還是什麼方式? 如果上面這樣傳會不會有什麼風險~
: 當然API一定也會叫我們傳 有幾個element
: 所以這樣寫應該OK吧??
OK
vector 的元素是存放在連續的空間中
: 還是有淺在的問題 例如說 vector realloc了
: 這API可能會一直對於原本你傳的&DataList[0] 位址 對值作判斷~
: 這樣應該就壞了???
對 會爛
: 如果不用vector 我想到的就只有宣告超大陣列..但這一定不好
: 是我多慮了 還是本來就不該這樣傳@@?
: thx
vector realloc 之後重新呼叫一次該 API 呢?
如果你第一次呼叫後 那個位址就不能再改
那麼這個問題無解
你不可能取得一塊大小可以任意增加卻又完全不會引發 reallocation 的記憶體空間
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.29.108
推
04/30 17:43, , 1F
04/30 17:43, 1F
→
04/30 17:43, , 2F
04/30 17:43, 2F
→
04/30 17:43, , 3F
04/30 17:43, 3F
推
04/30 18:37, , 4F
04/30 18:37, 4F
→
04/30 18:38, , 5F
04/30 18:38, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章