今天我写数据结构课的作业,是一道有关用有序单链表表示集合,实现集合的交、并和差运算的题。要求:
1、 对集合中的元素,用带头结点单链表进行存储。
2、 实现交、并、差运算时,不另外申请存储空间。
我的代码如下:
运行时提示_BLOCK_TYPE_IS_VALID_(pHead->nBlockUse)错误
我Debug是发现时程序结束时释放内存空间错误,我百度了一下,发现这个主要是由于:
1)内存越界写东西;2)这块内存已经被释放了,又被重复释放了一次。 (在第一次被释放中,是内存分配程序改掉了头部信息)。
我这个程序就是第二个原因了
修改方法:
在 ClearList()函数while循环的条件改成 head->next!=0 && length>0 即可。