大家好,我最近遇到一個怪問題....
我有兩個 pointer: A *a ; A *b;
因為我希望把這兩個 "address" 用 socket 來傳,所以我就做了這樣的事。
已知 a == b (但他門是 local variables)
thread 1 ====
memset(buffer1, '\0', sizeof(buffer1));
memcpy(buffer1, &a, sizeof(A*));
thread 2 ====
memset(buffer2, '\0', sizeof(A*));
memcpy (buffer2, &b, sizeof(A*));
結果沒想到 strcmp(buffer1, buffer2) 的結果有時候是 0 有時候又不是....
請問.... 這樣寫是不是不太對阿
我知道 &a != &b 但是既然 a == b 那麼
memcpy(buffer1, &a, sizeof(A*));
不就要等於
memcpy(buffer2, &b, sizeof(A*));
(我是指 buffer 會相等??)
不然....還有甚麼好方法可以用 socket 傳送 address 呢??
(我想傳送 address 只是想要把它當成某種特定的 identifier...)
我實在不想把他轉成 int 去送...
雖說 "通常" sizeof(int) == sizeof(pointer)
但這也不是永遠成立吧....
還請大家多多指教了
<(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 155.97.237.213
→
04/19 00:42, , 1F
04/19 00:42, 1F
→
04/19 00:56, , 2F
04/19 00:56, 2F
→
04/19 00:56, , 3F
04/19 00:56, 3F
→
04/19 04:12, , 4F
04/19 04:12, 4F