0

ポインターの配列から値を抽出しようとすると問題が発生します。まず、次のようにデータを配列に入れます。

RHExportType* rhet = new RHExportType;

        for (int i = 0; i <= 9; i++)
        {
            CString* strTemp;

            strTemp = CRHExportTypeCollection::GetTypesAndDescription(i);   //retruns the first pointer to an CString array


            rhet->type = i;     

            _tcscpy(rhet->extension, *strTemp);
            ++strTemp;
            _tcscpy(rhet->description, *strTemp);

            pArr.Add(rhet)
        }

RHExportType は、char[50] 型の 2 つのフィールドと int 型の 1 つのフィールドを持つ構造体です。pArr は、CPtrArray& pArr 関数の out パラメータとして宣言されています。

そして、私はデータにアクセスしています:

int sizeArr = m_RHExpType.m_ExpTypeArr.GetSize();
for(int i=0; i<12; i++)
{       
    RHExportType* pRHET = (RHExportType*)m_RHExpType.m_ExpTypeArr.GetAt(i);

    strTemp.Format(_T("%s (.%s)"), pRHET->description, pRHET->extension);
}

しかし、 index(i) の値に関係なく、常に最後に挿入された値を返します。データを間違って追加していますか? それとも問題はデータの取得にありますか?

4

1 に答える 1