によって労働組合のメンバーを渡すん:は、どのように私は労働組合は次のように宣言した参照
typedef union {
mpls_vpls_t Vpls_dat; //typedef struct
mpls_vpws_t Vpws_dat; //typedef struct
}ser_cache_t;
と私はそれのためにメモリを割り当てる:
ser_dat_ch = calloc(LABEL_T_CNT,sizeof(ser_cache_t));
if (ser_dat_ch == NULL)
return ERROR;
ながらstatic ser_cache_t *ser_dat_ch = NULL;
がグローバルです。
今、私はデータと私の労働組合を移入したいので、私は次のように機能し、それへのポインタを渡しwantto:
rv = switch_mpls_vpws_data_get(lab, &ser_dat_ch->Vpws_dat[lab]);
しかし、ここでは、コンパイラは悲鳴:式はポインタとオブジェクトタイプ ている必要がありますなぜですか、&ser_dat_ch->Vpws_dat[lab]
私は探しているアドレスに解決しないでしょうか?
'mpls_vpws_t'とは何ですか?これが配列typedefでない場合、明らかに 'Vpws_dat [lab]'は使用できません。おそらく '&ser_dat_ch [lab] .Vpws_dat' –
@ M.Mの両方の構造体は' typedef struct'です – cerr
できません。 Cは参照渡しをサポートしていません。しかし、あなたはユニオン(別名アドレス)にポインタを渡すことができます。 [ask]を参照し、[mcve]を提供してください。また、オペレータの前提についても読んでみたいです。 – Olaf