当前位置: 技术问答>linux和unix
free导致程序被kill,为什么
来源: 互联网 发布时间:2017-04-17
本文导语: if( fclose(Filefp) next != NULL){ pFileHead = pFileHead->next; //从链表删除已经发送完毕的文件 printf("address:%xn",&pf); free(pf); //释放内存 printf("free(pf):pFileH...
if( fclose(Filefp) next != NULL){
pFileHead = pFileHead->next; //从链表删除已经发送完毕的文件
printf("address:%xn",&pf);
free(pf); //释放内存
printf("free(pf):pFileHead has been removed from list!next file :%sn",pFileHead->name);
return 1;
}
pFileHead是单向链表头部,当删除第一个节点时程序被kill,free(fp),这一句之后就被kill了
pFileHead = pFileHead->next; //从链表删除已经发送完毕的文件
printf("address:%xn",&pf);
free(pf); //释放内存
printf("free(pf):pFileHead has been removed from list!next file :%sn",pFileHead->name);
return 1;
}
pFileHead是单向链表头部,当删除第一个节点时程序被kill,free(fp),这一句之后就被kill了
|
你删除的时候链表多大啊,pFileHead->name 这里操作不当也可能被kill。确认pFileHead的指针是否正常。
|
在哪崩溃并不代表就是这几句有问题。
|
调试跟踪一下,哪一步coredump了
还有你给那么几句话也判断不出来的
还有你给那么几句话也判断不出来的