为了账号安全,请及时绑定邮箱和手机立即绑定

请问C语言运行到free(p)程序就卡住,这是为什么?

请问C语言运行到free(p)程序就卡住,这是为什么?

C
猛跑小猪 2018-07-24 18:14:20
typedef char Elem;typedef struct LStack {Elem data;struct LStack *next;}LSNode,*PtrLSNode;int InitLSNode_Head(PtrLSNode *LSNode);int PushLSNode(PtrLSNode *LSNode, Elem *e);int PopLSNode(PtrLSNode *LSNode, Elem *e);int PopLSNode(PtrLSNode *LSNode, Elem *e) {PtrLSNode p = NULL;p = (*LSNode)->next;if (NULL == (*LSNode)->next) return FALSE;*e = p->data;(*LSNode)->next = p->next;free(p);return OK;}
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

free()
C语言函数
头文件:malloc.h或stdlib.h
作用:释放malloc(或calloc、realloc)函数给指针变量分配的内存空间的函数
使用后该指针变量一定要重新指向NULL,防止野指针出现,有效 规避误操作。
free()
C语言函数
头文件
malloc.h或stdlib.h
作    用
释放内存空间
函数名: free
功 能: 与malloc()函数配对使用,释放malloc函数申请的动态内存。(另:对于free(p)这句语句,如果p 是NULL 指针,那么free 对p 无论操作多少次都不会出问题。如果p 不是NULL 指针,那么free 对p连续操作两次就会导致程序运行错误。)
用 法: void free(void *ptr);


查看完整回答
反对 回复 2018-07-26
  • 1 回答
  • 0 关注
  • 1616 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信