- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:構造体の各メンバにfor文からアクセスする)
構造体の各メンバへのアクセス方法をループで実装する方法について
このQ&Aのポイント
- VC++2005で開発している場合、構造体の各メンバにfor文からアクセスする方法について教えてください。
- ループ文を使用して、strcpyで構造体の各メンバに値を代入する方法についてお知りになりたいです。
- 現在、strcpyの部分をループ文でまわす方法についてアドバイスをいただけますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
できますけど、あまり意味の無いような気がします。 int offset[] = { offsetof(Sample,test1), offsetof(Sample,test2), offsetof(Sample,test3) }; int i; for(i=0; i<sizeof x/sizeof(char*); i++){ strcpy((char*)&sample+offset[i],x[i]); }
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
回答No.2
C言語の場合。 例えば int test1,test2,test3 ; とかの変数をループで回すことってできませんよね?構造体のメンバも同様です。 typedef struct { char test[10][10]; }Sample; 等と二次元配列にするとか、 何度も出てくるなら structSampleCopy( Sample *dst, char **src ) みたいな関数にするとか、 指定した数値に対応するメンバのアドレスを返すmemberAddressみたいな関数を用意して strcpy( memberAddress(&sample,i ) ,X[i] ) ; みたいに各メンバの先頭アドレスに直接アクセスするか でしょうか。
質問者
お礼
ご回答ありがとうございます。 今回はポインタ配列を使用することにしました。 (データ型がすべてcharなので)
お礼
ご回答ありがとうございます。 今回はポインタ配列を使用することにしました。 (データ型がすべてcharなので)