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
受信側では、受信したバイトを変換して に戻す方法はvoid*
?
ああ: コードは 32 ビットでも 64 ビット システムでも動作するはずです ;) さらに、コードは -Wall -Werror を使用してコンパイルする必要があります。
助けてくれてありがとう!良い週末を、ジョナス