[问题] 请问这个二元树哪边出了问题??

楼主: hunkchen2016 (我的鸡巴女友)   2018-06-17 13:08:19
请问各位大大
我的程式在编译的时候没有问题
但是执行却出现错误???WHY???
有强者可以帮我找出问题吗???
我原本的struct如下
struct Node
{
int data;
struct Node *left_child;
struct Node *right_child;
};
后来我为了加入字串,所以改成
struct Node
{
int data;
char name[10];
struct Node *left_child;
struct Node *right_child;
};
然后修改了一下节点插入
但是就出现错误,奇怪的是编译的时候
没有问题,但是执行之后却无法执行,出现下面讯离
作者: cphe (魔鬼藏在垃圾筒里)   2018-06-17 13:15:00
肉眼debug旷日费时,最快就是看你加了哪些东西才挂掉从那开始找,要不然debugger开下去就知道死在哪了
作者: art1 (人,原来不是人)   2018-06-17 14:10:00
从错误讯息来看,似乎是内存配置错误,我猜是对齐问题?修改 char[10] 里面的 10 看看,看能不能改到一个可以运作的
作者: outofyou   2018-06-17 14:31:00
bst_insert里面放到p->name, p 可能为null。
作者: ilikekotomi (Young)   2018-06-17 14:41:00
用vs debugger发现你malloc的size是错的newnode=(bt)malloc(sizeof(bt));typedef node *bt; 这样你sizeof(bt)回传的会是指标的大小 应该要是sizeof(Node)的大小才对我只有看runtime错掉的部分 其他要靠你自己了至少改过以后可以跑到enter number的地方
作者: sarafciel (Cattuz)   2018-06-17 15:45:00
把指标拿typedef藏掉星号不是好的coding style,建议改掉

Links booklink

Contact Us: admin [ a t ] ucptt.com