CTypedPtrArray<CPtrArray,QUEUEDATA *> QueueDataArray[4];
QUEUEDATA *QueueData; //自定义的数据结构
......
//添加数据
for(int i=0; i<4; i++)
{
    ... //改变QueueData的值    QueueDataArray[i].Add(QueueData);
}
......
//使用数据
for(int m=0; m<4; m++)
for(int n=0; n<QueueDataArray[i].GetSize(); n++)   
{   
  ....
}   

问题:
调试得到QueueDataArray[i].GetSize()的值总为0.并且QueueDataArray[i].Add(QueueData)的返回值也总是0,添加数据没成功,不知道是什么原因,难道不可以这样使用CTypedPtrArray<CPtrArray,QUEUEDATA *> QueueDataArray[4]???
请大家帮帮忙!谢谢    

解决方案 »

  1.   

    CTypedPtrArray <CPtrArray,QUEUEDATA *> QueueDataArray[4]; 
    QUEUEDATA *QueueData; //自定义的数据结构 
    ...... 
    //添加数据 
    for(int i=0; i <4; i++) 

        ... //改变QueueData的值     QueueDataArray[i].Add(QueueData); 

    ...... 
    //使用数据 
    for(int m=0; m <4; m++) 
    for(int n=0; n <QueueDataArray[n].GetSize(); n++)  
    {  
      .... 
    }  

    问题: 
    调试得到QueueDataArray[n].GetSize()的值总为0.并且QueueDataArray[i].Add(QueueData)的返回值也总是0,添加数据没成功,不知道是什么原因,难道不可以这样使用CTypedPtrArray <CPtrArray,QUEUEDATA *> QueueDataArray[4]??? 
    请大家帮帮忙!谢谢 
      

  2.   

    这些东西尽量用C++的。别用MFC的。
      

  3.   

    记得不是很准确,这个自定义的结构是不是必须从CObject派生
    CTypedPtrList好像有这个规定
      

  4.   

    我刚才测试了一下,是成功的,请楼主参考我的代码修改,祝你好运:头文件定义:
    #include <afxtempl.h>typedef struct _ItemInfo
    {
    int    nVal;
    double dVal;
    }ITEMINFO;typedef CTypedPtrArray<CPtrArray, ITEMINFO *> LIST_ARRAY;LIST_ARRAY m_list;CPP测试:
    ITEMINFO *pInfo = new ITEMINFO;
    pInfo->nVal = 2;
    pInfo->dVal = 3.45f;
    m_list.Add(pInfo); int nSize = m_list.GetSize();
    ITEMINFO *pItem = (ITEMINFO *)m_list.GetAt(0);最后想说的一嗲就是楼主你的代码写得很不规范,要注意这些。