首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

free以致程序被kill,为什么

2013-07-26 
free导致程序被kill,为什么if( fclose(Filefp) 0 ){perror(fclose)return 0}printf(fclose(Filefp)

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了
还有你给那么几句话也判断不出来的

热点排行