双链表实现

来源:互联网 发布:西门子plc软件tla 编辑:程序博客网 时间:2024/06/05 14:28

在实现双端链表的时候,由于图简单,没加哨兵。导致删除节点的时候出现free首节点无法删除。

原因是:引用 这篇博客 http://blog.csdn.net/llhyy17/article/details/5375298

     void free(void *ptr) 
    { 
            struct mem_control_block *free
            free = ptr - sizeof(struct mem_control_block); 
            free->is_available = 1; 
            return; 
    }

需要将头节点往前移一个数据类型占用的内存大小。然后将这个地方的位置标记为可以使用的。这个时候就出现了内存访问非法了。


0 0
原创粉丝点击