free导致程序被kill,为什么
if( fclose(Filefp) < 0 ){
perror("fclose");
return 0;
}
printf("fclose(Filefp) < 0\n");
pf = pFileHead;
if(pFileHead->next != NULL){
pFileHead = pFileHead->next; //从链表删除已经发送完毕的文件
printf("address:%x\n",&pf);
free(pf); //释放内存
printf("free(pf):pFileHead has been removed from list!next file :%s\n",pFileHead->name);
return 1;
}
pFileHead是单向链表头部,当删除第一个节点时程序被kill,free(fp),这一句之后就被kill了
------解决方案--------------------在哪崩溃并不代表就是这几句有问题。
------解决方案--------------------你删除的时候链表多大啊,pFileHead->name 这里操作不当也可能被kill。确认pFileHead的指针是否正常。
------解决方案--------------------调试跟踪一下,哪一步coredump了
还有你给那么几句话也判断不出来的