if(c_RecvBuff[2] == 0x0F && c_RecvBuff[8] == 0x97)   //拒绝帧应答(c_RecvBuff是接收缓存数组,sizeof为1024,每次接收前都会清零)    {
           cThread->c_TransmitData(cThread->flag,c_RecvBuff); //发送函数
   }
else
{
Thread->c_sendExMassage(cThread->c_sendbuf); 
}
这是线程函数中的一个语句,可是程序每次执行到if判断语句的时候,只要里面的条件满足,就跳出一个提示框:Micosoft(R) Developer Studio已停止工作,条件不满足的话,就会正常运行到else的地方。请问各位高手什么原因?为什么会在if地方程序不能运行呢?在做毕设,就要答辩了,出这个问题,也找不出原因。请高手指点迷津!

解决方案 »

  1.   

    那是什么地方的内存呢?c_RecvBuff的内存,应该不是吧?
      

  2.   

    把if里面的数据变成if(1),执行也出错。指点一下吧?
      

  3.   

    cThread 是否有效,
    是否对RecvBuff过度使用。
    TransmitData本身存在异常。
    自己debug跟踪,很快可以排除,
      

  4.   

    帮你找了点资料,如果你的不是程序问题,那么就有可能是下面的情况
    http://hi.baidu.com/ugene/blog/item/978575fb6c46b6d5b48f31d3.html
    如果不是这种情况,那就是
    cThread->c_TransmitData(cThread->flag,c_RecvBuff); //发送函数
    这里出错,自己DEBUG一下,进c_TransmitData中看运行到哪出错,看c_RecvBuff值有没有问题,是不是访问越界,应该很快可以解决的
      

  5.   

    cThread->c_TransmitData(cThread->flag,c_RecvBuff);
    这里错了吧,指针有效?函数中也看一下,Debug调试
      

  6.   

    因为到if()地方就停止运行了,根本到不到cThread->c_TransmitData(cThread->flag,c_RecvBuff); //发送函数,而且我觉得发送函数应该没有问题,c_RecvBuff的sizeof是1024,每次接收函数前都是清零的,应该不会越界的。不只是什么问题?