首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

跪求解释下面的代码那里出有关问题了 解释

2012-05-03 
跪求解释下面的代码那里出问题了 在线等解释#define MAX_MSG_LEN 65536#define TYPE_OF_CMD_MSG 1000Updat

跪求解释下面的代码那里出问题了 在线等解释
#define MAX_MSG_LEN 65536
  #define TYPE_OF_CMD_MSG 1000


  UpdateData();
char* str = new char;
sprintf(str, "LOGIN:USER=%s,PSWD=%s", m_lgname, m_passwd);//
m_deal.sendMsg.cmd = str;
m_deal.sendMsg.dlgCtrl = DLGLGN;
m_deal.sendMsg.sequence = 1;
m_deal.sendMsg.service = "SRVM";
m_deal.sendMsg.snLogin = m_id;
m_deal.sendMsg.txCtrl = TXBEG;
char sBuff[MAX_MSG_LEN]= "";
char rBuff[MAX_MSG_LEN]= "";
m_deal.SendMsg(m_socket, sBuff, TYPE_OF_CMD_MSG);
m_deal.RecvMsg(m_socket, rBuff, TYPE_OF_CMD_MSG);
   

下面的函数写在类 CDeal (m_deal)  
/*************************发送消息***************************/
int CDeal::SendMsg(int m_sockfd, char *sendBuff,int MsgType)
{
int sendLen = 0;
int _result = Encode(sendMsg, sendBuff, sendLen, MsgType);
int x=send(m_sockfd, sendBuff, strlen(sendBuff)+1, 0); 
if( x == SOCKET_ERROR)
AfxMessageBox("");
return 0;
}

/*************************接收消息**************************/
int CDeal::RecvMsg(int m_sockfd, char *recvBuff, int MsgType)
{
int recLen=0;
recLen=recv(m_sockfd, recvBuff+recLen, 100, 0); 
if(recLen>0) 

//AfxMessageBox("\nreceive login ack message...\n\n"); 
//解码消息并获取相应的操作结果 
Decode(recvMsg, recvBuff, recLen, MsgType); 
return Success;
}
return Failure;
}



这段代码是onbtnclick
程序运行的时候没有问题
点击btn的时候出现下面的错误:
"0x7c9308f3" 指令引用的 "0x00004e49" 内存. 该内存不能为 "written"

[解决办法]
char* str = new char;
内存分配太少了
[解决办法]

探讨

char* str = new char;
内存分配太少了

热点排行