malloc.c: 3096错误
今天在写client.c的时候,刚加了个pthread,运行就出错,吓得我立马把加的代码都注释掉,但是……还是出错!而且这个错误还是这么的诡异,malloc.c: 3096 assertion ...... failed. 于是debug大法,gdb到出错的一行,居然是send_pkt = () malloc ()出错,我左看右看,都没有问题啊。又调了一会儿,各种怀疑,各种注释,最后终于找到了原因所在。注释掉init()函数后,无论怎么malloc都没有问题。但是init()里面就那么几行,也没有问题啊。最后终于找到细节所在:
buddy_list = (im_buddy *) malloc (len * sizeof(g_buddy_count)
原来是在这里,很奇怪的是,这次malloc没有出错,而是后面再用到malloc的时候出错了……
代码之事,千万要小心啊:)