free()节点时程序崩溃,查了一天才找到方法解决了。
解决该问题时,参考了以下博客,感谢博主的分享。本人遇见的问题和该博客基本一样,也分享出来吧。
http://blog.csdn.net/lixungogogo/article/details/50894689
定义的结构体为:
typedef struct Node{
int data;
struct Node *next;
}Node,*pNode;
在申请内存是,原是用的以下方法:
pNew = (pNode)malloc(sizeof(pNode));
注意,pNode是指针,sizeof(pNode)为4,是指针的大小。因此在free的时候会出现程序崩溃,但是在malloc申请内存和赋值时是没有报错的。后来单步调试到free(pNew)时,就程序崩溃。
后来在网上找到原因,修改了代码:
pNew = (pNode)malloc(sizeof(Node));
程序能正常运行。