[問題] 關於堆積損毀的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
vsC++ 2010
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
使用free()造成堆積損毀的樣子....
餵入的資料(Input):
(((a+b)*(c/d))+f)
((a/b)*((c+d()()()()()())()()*e))
(((a+b)+c))))
預期的正確結果(Expected Output):
假如把pop裡面的free()那行去掉之後就正常
錯誤結果(Wrong Output):
其中幾個數據亂掉
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/xI5iQwRY
補充說明(Supplement):
這是一個程式要把讀到的數學式子
判斷左括弧不等於又括弧時 就是有問題
假如相等的話 就是matching正常
然後要顯示那些配對的index
我是把遇到左括弧時push進stack 遇到右括弧時pop出來
假如pop時stack已經沒了話 或是數學式跑完top不等於NULL時
程式寫完之後 加上free()的狀態 有時編譯正常 有時失敗
爬過文似乎是heap在慢慢崩壞....
爬文結果好像有人也有遇到這個問題 但是我的值沒有隨便給
應該也不會爆掉
不知道為什麼只要free之後就會有問題
可以請強者們幫我看看嗎? 感激不盡!!!!!!!!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 74.115.6.51
→
10/25 22:53, , 1F
10/25 22:53, 1F
→
10/25 23:03, , 2F
10/25 23:03, 2F
→
10/25 23:04, , 3F
10/25 23:04, 3F
→
10/25 23:06, , 4F
10/25 23:06, 4F
→
10/25 23:06, , 5F
10/25 23:06, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章