c++中将char* 的连续四个字节数据转换为int
今天在做p2p客户端的收发消息操作,由于传的消息是个结构体,前四个字节被定义为整型,用来判断是哪类报文,在收消息的时候就涉及吧char*转换为int
做法如下:
auto recv_buf=std::make_unique<char[]>(1024);//分配1024字节的动态空间作为缓冲区 int result; result=recvfrom(~,recv_buf.get(),~,~,~,~); int i=0; //参数一:目的地址 参数二:目的字段字节数 参数三:源地址 参数四:要复制的长度 //其中recv_buf.get()是获得char[]的首地址 //如果想要复制从第n个char开始的字段(从0开始数),就在第三个参数上+n memcpy_s(&i,4,recv_buf.get(),4);