类型转换的一个问题!

fxly 2004-05-14 10:48:26
我定义了一个结构:
REGISTER
{
int ID;
int Num;
};

REGISTER rt;

memset(&rt,0,sizeof(rt));//初始化

char * r = ClientSocket1->Socket->ReceiveText().c_str(); //从socket得到8个字节的数据.

rt = (REGISTER)(r); //将字符数据转换成结构体数据

到这一步就有错误了,内容是:
[C++ Error] Unit1.cpp(386): E2031 Cannot cast from 'char *' to 'REGISTER'。

可以将结构体转换成字符串(我试过,没问题),但为什么不能把字符串转换成结构体呢??

要想把字符串强制类型转换成结构体,该怎么办?
...全文
35 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MEFULEU 2004-05-14
  • 打赏
  • 举报
回复
9494
aiirii 2004-05-14
  • 打赏
  • 举报
回复
rt = (REGISTER)(*r);
blairqiu 2004-05-14
  • 打赏
  • 举报
回复
楼主,别费功夫了,你这么转不可能能的。。。。
pp616 2004-05-14
  • 打赏
  • 举报
回复
把char * 转换成 结构实例??这不和道理啊!
强制转换也不能这么转啊。
这样是可以的。

struct REGISTER
{
int ID;
int Num;
};
char *buf;
int len;
len=ClientSocket1->Socket->ReceiveLength();
buf=(char *)malloc(len);
memtset(buf,0x00,len);
ClientSocket1->Socket->ReceiveBuf(buf,len);
REGISTER *prt;
prt=(REGISTER *)buf;
...
free(buf);
JetKingLau 2004-05-14
  • 打赏
  • 举报
回复
rt = (REGISTER)(&r);

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧