C++控制台中,用SOCKET传输结构体(包含CString),接收端想显示时程序会中断,好像是内存泄漏

structdatatrans{intx;floaty;CStringz;};发送端:datatranstrans;cin>>trans.x;cin>>trans.y;s... struct datatrans
{
int x;
float y;
CString z;
};
发送端:
datatrans trans;
cin>>trans.x;
cin>>trans.y;
string a;
cin.ignore();
getline(cin,a);
trans.z.Format("%s",a.c_str());

cout<<trans.z ;
send(sockConnect,( char*)&trans,10,0);

接收端:
datatrans trans;
recv(sockClient,RecvBuf,100,0);
memcpy(&trans,RecvBuf,sizeof(RecvBuf));

cout<<trans.x<<endl<<trans.y;
cout<<trans.z;

显示X和Y没问题,只要显示Z就会程序中断,怎么解决
展开
 我来答
345082603
2016-05-22 · TA获得超过267个赞
知道小有建树答主
回答量:207
采纳率:50%
帮助的人:98.2万
展开全部
int,float,cstring都占4个字节,而你发的时候才发10个字节,cstring表示一个地址指针,你连这个指针都没发完!!!读的时候就都不到cstring地址,为空程序就崩了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式