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] 类型和一个作为 int 类型。pArr 在函数 CPtrArray& pArr 中被声明为输出参数。

然后我正在访问数据:

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

1

您似乎在循环的每次迭代中都在更新和插入相同的对象到数组中。因此,该对象正在获取最后一个对象的值。

尝试这个:

for (int i = 0; i <= 9; i++)
{
    RHExportType* rhet = new RHExportType;
    ...
}
于 2013-10-18T06:46:46.557 回答