我这里有代码流。请在以下代码中为trchDl1p7kbps.trchDetail[0]->trchNo = 0;
提供替代解决方案
struct trchParam_
{
unsigned int trchNo;
};
typedef struct trchParam_ trchParam;
struct trchDetail_
{
trchParam **trchDetail;
};
typedef struct trchDetail_ trchDetail;
int main(void)
{
trchDetail trchDl1p7kbps;
trchDl1p7kbps.trchDetail = (trchParam **)malloc(sizeof(trchParam **) * 1);
*trchDl1p7kbps.trchDetail = (trchParam *)malloc(sizeof(trchParam *));
trchDl1p7kbps.trchDetail[0]->trchNo = 0;
}
如何避免数组表示法?我可以在这里使用pointer
(*
)代替[]
吗?
答案 0 :(得分:1)
是的,你可以,
trchDl1p7kbps.trchDetail[0]->trchNo
相当于:
(*trchDl1p7kbps.trchDetail)->trchNo
也等同于
(**trchDl1p7kbps.trchDetail).trchNo
并且没有结构双重引用运算符等效于结构反引用运算符->
,因此您必须选择其中一种表示法。