C语言中free()释放空间时报错
Posted 两片空白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中free()释放空间时报错相关的知识,希望对你有一定的参考价值。
今天再写用链表写一个线性表时,删除节点时free()释放空间时总是报错,报错信息如下:
经过一番查询得知,free()是你申请了多少空间,就释放多少空间,在申请时,已经将你申请空间的大小记录。当时如果你使用与你申请的空间不符,就会报错。(个人理解).
在我的代码中
struct Node{
int data;
struct Node* next;
};
typedef struct Node * List;
List Creatlist(int x){
//List list = (List)malloc(sizeof(List));//错误,List 是指针,只有4字节空间
List list = (List)malloc(sizeof(struct Node));//正确
list->data = x;
list->next = NULL;
return list;
}
我这里只申请4字节空间,当时我使用时超过了4字节空间,所以会报错。
以上是关于C语言中free()释放空间时报错的主要内容,如果未能解决你的问题,请参考以下文章