当前位置:  技术问答>linux和unix

关于链表的奇怪问题

    来源: 互联网  发布时间:2017-04-17

    本文导语:  单向链表;表头由全局变量保存;下面分别是建立链表和打印链表的函数 //将文件名指针加入到链表 HI_U8 AddH264FileInList(HI_U8 *p) {  FileNode *fp = NULL,*sp = NULL;  if(pFileHead == NULL){         pFileHead = (FileNode *)ma...

单向链表;表头由全局变量保存;下面分别是建立链表和打印链表的函数

//将文件名指针加入到链表
HI_U8 AddH264FileInList(HI_U8 *p)
{
 FileNode *fp = NULL,*sp = NULL;
 if(pFileHead == NULL){
        pFileHead = (FileNode *)malloc(sizeof(FileNode)); //申请新节点
        if(pFileHead == NULL){
          printf("Malloc Ram fatled!~n");
          return 0;
        }
        //memset(pFileHead,0,sizeof(FileNode));
        memcpy(pFileHead->name,p,27);  //拷贝文件名到链表
        pFileHead->next = NULL;
        return 1;
 }
 fp = pFileHead;
 while(fp->next != NULL){
     fp = fp->next;
 }
 sp = (FileNode *)malloc(sizeof(FileNode));
 if(sp == NULL){
    perror("Malloc");
    return 0;
   } 
   sp->next = NULL;
   fp->next = sp;
   memcpy(sp->name,p,27);
   return 1;
}

这是在其中一个线程里对建立的文件打印显示,在另外一个net线程对文件进行发送,问题来了:
 printf("address:%08x--************-%08xn",pFileHead,pFileHead->next); 
    printFileName(); 
    printf("address:%08x---%08x--0n",pf,pFileHead); 
    pf = pFileHead; 
    printf("address:%08x---%08x--1n",pf,pFileHead->next); 
    printFileName(); 
    if(pFileHead->next != NULL){         
        printf("address:%08x---%08xn",pFileHead,pFileHead->next); 
        pFileHead = pFileHead->next;   //从链表删除已经发送完毕的文件
        
………………
}

函数打印的指针地址和文件名都是正确的,但是用printf("address:%08x---%08x--1n",pf,pFileHead->next); 这条语句打印总显示pFileHead->next引用非法内存,所以当运行至if(pFileHead->next != NULL){
……时候程序被kill掉,请问为什么会出现这种情况呢?好奇怪

|
多线程并发的问题?一个访问,一个删?

    
 
 

您可能感兴趣的文章:

  • shm_open函数问题.奇怪!!!奇怪!!!!!
  • 奇怪的问题 奇怪的问题,向大家请教
  • 好奇怪的问题哎………………怎么也不能安装!
  • unix下的非常的奇怪WC的问题,向unix高手请教 好急呀!!!!!!!!!!!!!!!
  • 关于LINUX I2C,GCC的奇怪问题。。。问题依旧。。
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • 问一个很奇怪的线程调用的问题
  • 很奇怪的shell问题
  • 一个奇怪的路径问题
  • 奇怪!关于字串参数的问题?
  • ————奇怪的现象:不能关闭TOMCAT的问题————
  • 使用FC4一个奇怪问题,放入光盘后死机?
  • !!!初学Java,遇到一个奇怪问题,请大家回答!!!
  • SOCKET发送奇怪问题!!!
  • 请教redhat8.0中的两个问题~奇怪啊~
  • 引用的奇怪问题
  • 碰到个很奇怪的串口问题
  • killall 奇怪的问题,百思不得其解
  • jsp Web 部署后的奇怪问题???
  • rmmod出现的奇怪问题,求解,急急!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 奇怪!奇怪!真奇怪!!!
  • 奇怪奇怪真奇怪
  • 奇怪,真奇怪,在线等待
  • 奇怪奇怪...........?????...........
  • solaris上的C程序,编译报错: 存储类只能使用register,奇怪,奇怪!
  • 奇怪!奇怪!我用jbuilder编jsp程序,从数据库中取出的字符串型字段却显示16进制数
  • 奇怪啊,奇怪,为什么我的JB7做EJB时,只要在EJB设计面板上随便做点东西,我的EJB的JAVA的源码就会变的不见了,或者少了很多字段申明??
  • 奇怪,CSDN的贴子,提问部分我最多能看到第4行??!!
  • accept,recvfrom接收到奇怪的ip
  • 一个特奇怪的函数申明错误
  • 一些奇怪的现象,帮帮我
  • 奇怪的四分之一屏!!
  • 好奇怪啊,大家帮忙啊
  • 奇怪的gets()!!求救!!
  • 奇怪,vi vim有区别?
  • VIM高手进来看,vim中出现了奇怪的颜色。
  • 我遇到的一个巨奇怪的事情:
  • red hat 运行 mysql5.1 出现奇怪提示
  • QT 再现奇怪的问题
  • 关于semget的奇怪问题,请大家帮忙:)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,