看代码
char   l_atcTemp[20];
tDevStruct  l_tDev; //结构体memset(atcTemp,0x00,sizeof(atcTemp));
sprintf(l_atcTemp,"%s","00010001");
strcpy(l_tDev.acDevID,l_atcTemp);此时l_tDev.acDevID的确是 00010001,下面
memset(atcTemp,0x00,sizeof(atcTemp));
sprintf(l_atcTemp,"%s","88888888");
此时l_tDev.acDevID也变成了 88888888怎么回事? 我用sprintf(l_tDev.acDevID,"%s",l_atcTemp);依然如此,为什么?

解决方案 »

  1.   

    1.将你的tDevStruct结构定义贴出来。
    2. 另外l_atcTemp与atcTemp变量之间什么关系?
      

  2.   

    此时l_tDev.acDevID也变成了 88888888 
    -------------------------------------
    调试的时候看变量窗口的,还是什么办法看到的?先执行memset(&l_tDev,0,sizeof(tDevStruct));
      

  3.   

    不知道你的atcTemp和l_atcTemp是写错了,还是不是同一个变量.
      

  4.   

    不会是l_tDev.acDevID = l_atcTemp吧?
      

  5.   

    acDevID 是不是声明的长度小,在STRCPY时内存有错误,你用MEMSET置0时,它也应变为0了
      

  6.   

    感觉应该是l_tDev.acDevID与l_atcTemp指向同一地址空间了