我在旅途中的結構:爲什麼這兩個結構不相等?
type header struct {
dataLength uint16
optDataLength uint8
packetType uint8
}
type packet struct {
syncByte uint8
header *header
headerCrc uint8
data []byte
optData []byte
dataCrc uint8
}
如果我已經創建了一個編碼和解碼功能,用於創建包,併爲它們編碼成二進制。但是,爲什麼這兩個instance.header有所不同?
&{syncByte:85 header:0xc2080004b8 headerCrc:112 data:[2] optData:[] dataCrc:14}
&{syncByte:85 header:0xc2080004f8 headerCrc:112 data:[2] optData:[] dataCrc:14}
如果我在那兩個頭的運行的println我得到:
&{dataLength:1 optDataLength:0 packetType:5}
&{dataLength:1 optDataLength:0 packetType:5}
其中眉似乎相等。但爲什麼他們看起來像0xc2080004f8 vs 0xc2080004b8,當我直接檢查packet.header時看不到差異?
請指定如何創建實例,是否通過引用傳遞值? – 2014-09-19 20:31:50