我想通过 C 中的套接字发送/接收内存地址。我拥有的是以下内容:
void *ptr = malloc(122); /* So the pointer points to some valid address */
unsigned char *socketData = NULL;
socketData = (unsigned char*)malloc(sizeof(void*));
memset(socketData, 0, sizeof(void*));
/* ??? How to get the memory address - where ptr points to - to socketData ??? */
我知道打印指针地址的方法printf
是使用%p
,即
printf("%p", ptr);
但这会打印例如 0x0021ef1a。我想要的只是以下内容:0021ef1a
而在接收方:如何将接收到的字节转换回 a void*
?
啊:代码应该适用于 32 位以及 64 位系统;)此外,代码应该使用 -Wall -Werror 编译....呵呵
感谢您的帮助!祝你周末愉快,乔纳斯