-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