0

ここにコードフローがあります。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( )を使用できますか?*[]

4

1 に答える 1

1

はい、できます。

trchDl1p7kbps.trchDetail[0]->trchNo

と同等です:

(*trchDl1p7kbps.trchDetail)->trchNo

これも同等です

(**trchDl1p7kbps.trchDetail).trchNo

また、構造参照演算子に相当する構造二重参照演算子は存在しないため、これらの表記法のいずれかを選択する必要があります。->

于 2013-04-24T11:21:41.770 に答える