[問題] 堆疊已損毀

作者: mario86123 (mario86123)   2017-05-13 09:30:37
開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
vs 2015
問題(Question):
這個程式是要把餵入的資料轉成二元樹存起來
我程式寫到一個段落偵錯的時候
發現第28行
第一次malloc是成功的
但第二次malloc就失敗了
它顯示堆積已損毀
想請問一下程式是哪裡出錯了呢?
餵入的資料(Input):
(-,(/,(*,16,(+,24,13)),9),10)
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/e35UfNCP
作者: sunneo (艾斯寇德)   2017-05-13 11:27:00
line 33: root->data[1] = '/0';heap壞掉,就要檢查對malloc的指標寫入的操作data有[3],operatorr有[5],operatorr沒有初始化所以你的strcpy應該有蠻大機會複製超過3個byte
作者: hunandy14 (Charlott.HonG)   2017-05-13 12:12:00
26行沒有歸零 32行有機會複製到 垃圾不過主因是31不正確的操作(沒補結束符)然後就是樓上說的複製超過71行 嘗試把一個 長度超過3的複製進去33行操作是錯誤的 直接 = 0 就好
作者: tinlans ( )   2017-05-14 05:01:00
標題堆疊,內文堆積
作者: mario86123 (mario86123)   2017-05-14 08:28:00
成功了 感謝~
作者: Bencrie   2017-05-16 22:49:00
堆疊損毀跟堆積損毀是不一樣的東西啊啊啊

Links booklink

Contact Us: admin [ a t ] ucptt.com