-1
我有以下結構如何訪問指向結構內數組的指針?
typedef struct {
uint8 u8Status;
uint64 u64IeeeAddrRemoteDev;
uint16 u16NwkAddrRemoteDev;
uint8 u8NumAssocDev;
uint8 u8StartIndex;
/* rest of the message is variable Length */
uint16* pu16NwkAddrAssocDevList;
} ZPS_tsAplZdpIeeeAddrRsp;
這裏pNwkAddrAssocDevList
是一個指向的16位網絡地址的列表。
我使用這下面的代碼段
ZPS_tsAplZdpIeeeAddrRsp p;
/* this structure p is already filled by the system, i just need to access it*/
/* using for loop */
printf("%04x",p.pu16NwkAddrAssocDevList[i]);
但我沒有得到正確的值,它會返回一些內存地址。
任何人都可以幫助我解決這個問題嗎?
你在訪問它之前是否初始化了p? – Deqing 2012-07-30 15:16:52
是的,p是由另一個程序分配的,我已經測試了其他成員的結構,它們被正確分配,但數組引起了問題。 – 2012-07-30 15:20:27
這裏的代碼在假設pu16NwkAddrAssocDevList指向的內存被正確分配並且索引i在正確的範圍內的情況下是正確的。因此,如果這不會產生您期望的結果,那麼我們需要更多關於如何分配內存的信息以及您爲我使用的值。 – 2012-07-30 15:23:54