PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] C++ stack中的記憶體管理問題
作者:
CrystalNik
(水晶尼克)
2015-12-15 11:05:28
放在stack中的物件
不是在block結束或函數結束時會回收記憶體嗎?
舉個例子 一個普通函數:
vector<int> *method(){
vector<int> v = {1,2,3};
vector<int> *p = &v;
return p;
}
v物件的生命週期不是只到此函數結束?
但我在主程式
auto p = method();
之後還是可以透過p指標來操作v
表示v還存在?
請問為何會這樣呢?
作者:
Caesar08
(Caesar)
2015-12-15 11:16:00
是,那只是碰巧可以罷了
http://ideone.com/d8h2v7
作者:
CrystalNik
(水晶尼克)
2015-12-15 11:25:00
原來如此 感謝
作者:
shadow0326
(非議)
2015-12-15 11:43:00
置底第五誡
作者:
stupid0319
(徵女友)
2015-12-15 12:01:00
stack在程式結束前永遠存在呀XD
作者:
chchwy
(mat)
2015-12-15 13:11:00
還沒被覆蓋的記憶體垃圾 隨機當的禍根
作者:
james732
(好人超)
2015-12-15 13:30:00
房租到期只是剛好還沒有別的房客住進去
作者:
exeex
(執行檔EX)
2015-12-15 15:29:00
第一次可以 跑第二次就很有可能被蓋掉 然後當掉
作者:
stupid0319
(徵女友)
2015-12-15 15:45:00
其實這個技巧在一些地方也有用到,像是遊戲機破解透過更改stack,含數在return時就會跑到別的程式碼
繼續閱讀
[問題] gcc 編譯器問題
ho83leo
[問題] Qt編譯器設定問題
mikukonn
[問題] function 如何傳入或回傳reference NULL
yhn0tgb60
[問題] linux c tcp client 程式
ck49
[問題] MFC的PostMessage與ON_Message問題
eva527
[問題] linklist製作stack
f422661
[問題] 問一個MISRA-C RULE的解釋
qeagle
[問題] 請問C的資料結構.演算法書
LauPi
[問題] 字元陣列問題
anoymouse
[情報]C++線上課程
moremusic
Links
booklink
Contact Us: admin [ a t ] ucptt.com