- 締切済み
VC++2005MFC 入れ子構造体の使い方
VC++2005MFC typedef struct TMago{ stTestData mdata1[1000]; }stMago; typedef struct TKo{ stTestData kdata1[10000]; stTestData kdata2[10000]; stTestData kdata3[10000]; stTestData kdata4[10000]; stTestData kdata5[10000]; stMago *pMago[10000]; }stKo; typedef struct TOya{ stTestData odata1[100]; stTestData odata2[100]; stKo *pKo[100]; }stOya; stOya m_stOya;//メンバ変数 という構造体が定義されているのですが、 【Q1】 pMago、pKoのそれぞれ指定した分のメモリ確保は 例)それぞれ10個と20個分メモリ確保したい場合 for(int i = 0; i < 10; i++) { m_stOya.pKo[i] = new TOya; } とした後、 for(int i = 0; i < 10;i++) { for(int j = 0; j < 20; j++) { m_stOya.pKo[i]->pMago[j] = new TMago; } } で良いでしょうか? 【Q2】 また、これを解放するには、 同じループ処理を今度は内側から for(int i = 0; i < 10;i++) { for(int j = 0; j < 20; j++) { Delete m_stOya.pKo[i]->pMago[j]; } } for(int i = 0; i < 10; i++) { Delete m_stOya.pKo[i]; } で良いでしょうか? 【Q3】 pMago[0]の内容をpMago[1]へコピーしたい場合は memcpy(m_stOya.pKo[0]->pMago[1], m_stOya.pKo[0]->pMago[0], sizeof(TMago)); で良いでしょうか? 使い方なんてCの基本だろーですとか、そもそもこんな作りの構造体やめれば? と思われることは重々承知ですが、ご教授お願いいたしますm(__)m
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
- maru_yoshi_
- ベストアンサー率39% (17/43)
- maru_yoshi_
- ベストアンサー率39% (17/43)
- kmee
- ベストアンサー率55% (1857/3366)
- asuncion
- ベストアンサー率33% (2127/6290)
補足
すいません、C++です。 定義は、 typedef struct TTestata{ CString str1; CString str2; CString str3; }stTestData; です。 よろしくお願いいたしますm(__)m