struct TwoDMatch
{
  int linet[1024],lineb[1024],linetbmid[1024],
      columl[1024],columr[1024],columlrmid[1024];
};
TwoDMatch NewColuRowBak;
CArray<TwoDMatch,TwoDMatch> ColuRowBak;
 
int i;
for(i=0;i<1024;i++)
{
      NewColuRowBak.columl[i] = 0;
      NewColuRowBak.columr[i] = 0;
      NewColuRowBak.columlrmid[i] = 0;
      NewColuRowBak.linet[i] = 0;
      NewColuRowBak.lineb[i] = 0;
      NewColuRowBak.linetbmid[i] = 0;
 }
ColuRowBak.Add(NewColuRowBak);在debug版本时候可以编译运行,但是在release版本的时候最后那句就出问题了
fatal error C1001: INTERNAL COMPILER ERROR
 
这是怎么回事啊?该怎么搞?
谢谢先!

解决方案 »

  1.   

    把 CArray<TwoDMatch,TwoDMatch> ColuRowBak;
    改成 CArray<TwoDMatch,TwoDMatch> *pColuRowBak = new CArray<TwoDMatch,TwoDMatch>;后面的ColuRowBak.Add(NewColuRowBak);
    改成 pColuRowBak->Add( NewColuRowBak );
    试试看!
      

  2.   

    zhenbe:
    你说的方法不行,定义完了编译都通不过。
      

  3.   

    我把你的代码考下来编译运行(debug,release)都没问题
      

  4.   

    struct TwoDMatch
    {
      int linet[1024],lineb[1024],linetbmid[1024],
          columl[1024],columr[1024],columlrmid[1024];
    };
    TwoDMatch NewColuRowBak;
    CArray<TwoDMatch,TwoDMatch> ColuRowBak;
    以上是全局的
    其余部分放在一个对话框的OnButton1里面没有出任何问题
      

  5.   

    在使用ColuRowBak之前RemoveAll看看可以不可以?
    如果不可以CArray<&TwoDMatch, &TwoDMatch> ColuRowBak;这样可以不可以?
      

  6.   

    你在什么环境下编译的?
    我也把你的代码拷下来,(debug,release)编译都没有问题,
    好像不是这里的问题
      

  7.   

    struct TwoDMatch
    {
      int linet[1024],lineb[1024],linetbmid[1024],
          columl[1024],columr[1024],columlrmid[1024];
    };
    TwoDMatch NewColuRowBak;
    CArray<TwoDMatch,TwoDMatch> ColuRowBak;
    这一段是在MyDoc.h中定义的下面的操作是在MyView.cpp中进行的,不行啊!
      

  8.   

    我试了在单文档的myview.h中定义,在myview.cpp中操作,还是在release下通过不?你们是怎么通过的?设置了什么了吗?
      

  9.   

    堆栈溢出啦!改为:
    CArray<TwoDMatch,TwoDMatch&> ColuRowBak;
    即可。