-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]);

但我没有得到正确的值,它返回一些内存地址。

谁能帮我解决这个问题?

4

1 回答 1

0

这里 pu16NwkAddrAssocDevList 是一个指针。您需要在结构中添加另一个变量来定义 pu16NwkAddrAssocDevList 中值的长度/编号,例如int length。获得长度后,您可以通过循环访问 pu16NwkAddrAssocDevList 的值。

for (int i=0; i < p.length; i++) {

    printf("%04x", p->pu16NwkAddrAssocDevList);

    pu16NwkAddrAssocDevList++;

}

这样,您可以轻松地遍历存储在 pu16NwkAddrAssocDevList 中的值。

于 2012-07-30T16:34:00.170 回答