[問題] Struct內vector的記憶體釋放?
開發平台(Platform): (Ex: Win10, Linux, ...)
Win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VS2012
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
n/a
問題(Question):
想請問一下Vector在Struct內的記憶體該如何才是完整正確的釋放?
我宣告了一個Struct裡面包含了Vector
1. 宣告Struct為物件
MyStruct StructItem;
2. 宣告Struct為指標
MyStruct *StructItem;
StructItem = new StructItem();
delete StructItem;
請問這兩種方法,Struct內的Vector物件是不是都會完整的釋放
不需要額外再去對vector作Swap的動作?
另外問一下,Vector Swap前,Clear是必須的嗎?
謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.229.118
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1523262794.A.C2B.html
推
04/09 16:52,
8年前
, 1F
04/09 16:52, 1F
→
04/09 16:53,
8年前
, 2F
04/09 16:53, 2F
→
04/09 16:54,
8年前
, 3F
04/09 16:54, 3F
vector在c++內不是要另外去swap才會釋放嗎?
所以不知道是不是在struct內也是需要
→
04/09 16:54,
8年前
, 4F
04/09 16:54, 4F
※ 編輯: blackcity (114.34.229.118), 04/09/2018 16:56:36
→
04/09 16:57,
8年前
, 5F
04/09 16:57, 5F
→
04/09 16:58,
8年前
, 6F
04/09 16:58, 6F
→
04/09 17:00,
8年前
, 7F
04/09 17:00, 7F
→
04/09 17:01,
8年前
, 8F
04/09 17:01, 8F
OK~了解 感謝大大
※ 編輯: blackcity (114.34.229.118), 04/09/2018 17:02:33
→
04/09 19:58,
8年前
, 9F
04/09 19:58, 9F
這個好像要安裝VC11,目前沒有安裝其他插件的打算
推
04/09 21:23,
8年前
, 10F
04/09 21:23, 10F
→
04/09 21:24,
8年前
, 11F
04/09 21:24, 11F
→
04/09 21:24,
8年前
, 12F
04/09 21:24, 12F
抱歉,我的確不太懂。我想釋放的是整個struct所佔用的memory,因為看到vector需要
額外作swap才能釋放,所以擔心struct內的vector也需要額外的處理
推
04/10 00:29,
8年前
, 13F
04/10 00:29, 13F
※ 編輯: blackcity (114.34.229.118), 04/10/2018 09:15:16
※ 編輯: blackcity (114.34.229.118), 04/10/2018 09:15:39
推
04/10 09:27,
8年前
, 14F
04/10 09:27, 14F
推
04/10 11:32,
8年前
, 15F
04/10 11:32, 15F
→
04/10 11:32,
8年前
, 16F
04/10 11:32, 16F
→
04/10 11:32,
8年前
, 17F
04/10 11:32, 17F
想說C/C++的記憶體釋放、管理都需要自行處理
之前上網查是說如果用push_back的方式,就算下clear所佔的記憶體空間也不會釋放
所以才查到用swap去釋放
結果看來應該是完全不需要額外對vector作處理
struct只要不是用new的方式宣告,應該也不需要去作其他的的處理了
※ 編輯: blackcity (114.34.229.118), 04/11/2018 14:34:21
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章