用替代答案指向结构的指针

时间:2013-04-24 10:34:49

标签: c pointers

我这里有代码流。请在以下代码中为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*)代替[]吗?

1 个答案:

答案 0 :(得分:1)

是的,你可以,

trchDl1p7kbps.trchDetail[0]->trchNo

相当于:

(*trchDl1p7kbps.trchDetail)->trchNo

也等同于

(**trchDl1p7kbps.trchDetail).trchNo

并且没有结构双重引用运算符等效于结构反引用运算符->,因此您必须选择其中一种表示法。