socket发送过去乱码!
typedef struct
{
unsigned char lsh[4];
char tel[30];
char*msg; //问题可能出在这里
}Msg;
Msg ms;
memset(ms.lsh,0,4);
*(UINT*)ms.lsh =1140;
memset(ms.tel,0,30);
strcpy(ms.tel,"gaoxiaoweiandy");
ms.msg=NULL;
ms.msg= new char[15];
memset(ms.msg,0,15);
strcpy(ms.msg,"gaoxiaoweiandy");
int sendLen = 4+30+15;
char *p = &ms;
int SendSize = send(sockClient,p,sendLen,0);
情况描述:
发送过去,接收端只能正确接收 ms.lsh 和 ms.tel。 ms.msg接收乱码。
我想的是,ms.msg是个指针变量,不是字符数组,问题可能出现在 动态分配字符空间那里。
但是我在结构体外定义了一个指针变量,让其动态分配字符空间,然后发送出去,接收正确。
我的提问:
我想问的是,为什么在结构体内部定义指针变量,然后动态分配,发过去就有问题?