[问题] 堆叠已损毁

楼主: 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