有2个类,一个是clientSocket:CSocket还有一个是LogRecordset:CRecordset
写了一个打开数据库的函数,clientSocket::opendb()
clientSocket::OnReceive里有一段程序是这样的
if(int receiveLength = Receive(temp,1024))
{
temp[receiveLength] = 0;
}在这段代码之后调用opendb()就会报错,之前就一点问题也没有.
我是想分析收到的数据之后再根据收到的数据对数据库进行操作,如果这样不行,还有什么别的方法?

解决方案 »

  1.   

    刚才又试了一下,如果把temp[receiveLength] = 0;去掉的话,就没有问题了.这句我也不知道是干什么用的,只是很多书上都这么写......
      

  2.   

    if(int receiveLength = Receive(temp,1024))
    {
    temp[receiveLength] = 0;
    }
    你是要定义temp数组,还是要给temp数组中的某个项赋值?
    如果是赋值的话,那请检查temp[receiveLength]是不是越界了;如果是定义的话,请不要赋值
      

  3.   

    temp[receiveLength] = 0;
    这句的目的是将获得的数据最后一个字符置0, 如果接收的是字符串,那么方便后续处理
    这句本身没有问题但问题是你temp[]长度是多少?
    temp[receiveLength]有没有越界?