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

strtok的怪問題

    来源: 互联网  发布时间:2016-07-10

    本文导语:  int GetStrTokBufList(PBUF_LIST pBufList,char *Source,char *delim) {    int rc=0;    int iCount=0;    char *token=NULL;    char *p=NULL;    char *_Source= strdup(Source);    token=strtok(_Source,delim);    //   strcpy(pBufList[iCount].Buf,token);    memcpy(pBuf...

int GetStrTokBufList(PBUF_LIST pBufList,char *Source,char *delim)
{
   int rc=0;
   int iCount=0;
   char *token=NULL;
   char *p=NULL;
   char *_Source= strdup(Source);

   token=strtok(_Source,delim);
   //   strcpy(pBufList[iCount].Buf,token);
   memcpy(pBufList[iCount].Buf,token,strlen(token));

   iCount++;

   //while((p=strtok(NULL,delim)))
   while((p=strtok_r(NULL,delim,&pStr)))
   {
      //strcpy(pBufList[iCount].Buf,p);
      memcpy(pBufList[iCount].Buf,p,strlen(p));
      iCount++;
   }
   rc=iCount;
 free(_Source);//dont free why?
   return rc;
}
之前調用上面這個function都沒問題,現在又出錯了
問題如下在func調用GetStrTokBufList時是沒問題的..但一離開func時就出錯了
Program received signal SIGSEGV, Segmentation fault.
雖然知道一定又是strtok的問題,但不知怎樣解決
int func()
{
 GetStrTokBufList
...
...
return 0;
}

|

可以写个个程序单独测试上面的函数,判断是不是程序的其他地方出的问题。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请解释函数strtok()
  • g++中strtok_s is not declear in this scope
  • 关于strtok函数
  • 请问strtok(NULL,delimits)是什么意思?
  • C语言切割多层字符串(strtok_r strtok使用方法)
  • C++中strtok()函数的用法介绍
  • mmap后能用strtok或者srtok_r吗?
  • strtok()问题
  • 这边也来问一下,strtok函数的返回值是什么?
  • Strtok_r函数的功能如何实现
  • strtok的多线程实现


  • 站内导航:


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

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3