我定义了
struct bmpnode{int len;CBitmap * bmp;}
和一个 CArray<bmpnode,bmpnode> BmpArray;
然后在一个for询问里面读一个bmp,然后
       bmpNode.bmp = &Bmp
然后,BmpArray.Add(bmpNode)
可是最后用BmpArray.GetAt(i).bmp得到的都是指向最后一次的Bmp指针
请问为什么?

解决方案 »

  1.   

    You'd better use pointer,like this:
    CArray<bmpnode*,bmpnode*> BmpArray;
    ....bmpnode* pNode=new bmpnode;
    BmpArray.Add(pNode);....pNode=BmpArray.GetAt(i);
    pNode.bmp=.....Note: Don't forget to delete the pointers,at the end!
      

  2.   

    int i = BmpArray.GetSize();
    int j; for(j=0; j<i; j++)
    {
    bmpnode abc = m_BmpArray[j];
    }
      

  3.   

    我觉得问题是在Add的时候没有add上去
    开始我在struct bmpnode{int len;CBitmap  bmp;}
    定义bmp是一个对象
    然后再定义bmpArray,结果编译不过去
      

  4.   

    bmpNode.bmp = &Bmp
    ————————————————————
    你每次都是使用右边那个Bmp对象?
    建议每次都 new 一个新Bmp。