我有一个结构体,比较大,如opencv里面的  IplImage 类型。
大家知道IplImage 类型的数据都是  *指针类型的,处理起来才方便是吧~~~而我需要总是存储摄像头采集到的邻近的三帧图像:
 IplImage *img1;
 IplImage *img2;
 IplImage *img3;请问用什么数据结构存储这三幅图片比较好捏?数组就是 IplImage imgs[3]; 这个的话里面存储非指针的IplImage类型的数据处理起来比较方便,可是非指针类型的不方便后面的处理。容器的话是 vector<IplImage> imgs; 这样也不是指针的~~~ 
 
是不是用 IplImage **imgs; 会方便一点?
那么如何申请内存空间?
每幅图片是imgs[0] = (IplImage *)malloc(640 * 480 + sizeof(IplImage));
  imgs[1] = (IplImage *)malloc(640 * 480 + sizeof(IplImage));
  imgs[2] = (IplImage *)malloc(640 * 480 + sizeof(IplImage));是不是这个样子,有点混乱
表示不太懂。。求指教指向指针的指针结构体空间分配

解决方案 »

  1.   

    试下这样看看。IplImage *img[3];
    for(i = 0; i<3; i++)
       img[i]= (IplImage *)malloc(640 * 480 + sizeof(IplImage));
    我也在用OpenCV,http://blog.csdn.net/morewindows/article/category/1291764欢迎多交流。
      

  2.   

    vector<IplImage> imgs;
    你可以用迭代器vector<IplImage>::iterator iter;
    迭代器和指针一样。
    这样比较安全。
      

  3.   

    指针数组
    IplImage* imgs[3];指针类型元素
    vector<IplImage*> imgs;
      

  4.   

     早就关注啦哈哈
    肿么弄了两个指针就米有想到 IplImage *img[3]; 直接这样捏。
    嘿嘿,后面为了处理图像方便。还是用cvCreateImage来申请的空间~~~吼吼~~~谢谢啦~~~昨天思路好混乱
      

  5.   


     都米有怎么用过vector ,所以老是忘记 iterator 。
      

  6.   


     极是 极是 啊。嘿嘿。
    太弱了,我从来都米有用过vector里面带指针的。(⊙o⊙)… 多多联系多多感谢,嘿嘿