View类的OnInitialUpdate里面有错误。跟踪一下看看.

解决方案 »

  1.   

    我的程序根本就不能设置断点,一设置就说“one or more breakpoints cann't be set...."然后就是汇编代码。
    另外我有些指针是这样使用的:
    CEs2View::CEs2View(){
    ...
    gri=new CGrid**[pDoc->m_ngridy];
    for(int r=0;r<pDoc->m_ngridy;r++)
    {
    for(int x=0;x<pDoc->m_ngridx;x++)
    {
    gri[r][x]=new CGrid;
    }
    }
    ....}
    CGrid是我创建的格点类,是二维格点。
    在析构函数中
    CEs2View::~CEs2View()
    {
    CEs2Doc* pDoc = GetDocument();
    ASSERT_VALID(pDoc); for(int aa=0;aa<pDoc->m_ngridy;aa++)
       {
    for(int bb=0;bb<pDoc->m_ngridx;bb++)
    delete gri[aa][bb];
       }
      delete gri;
    .....
    }
    是不是这里出了问题。
      

  2.   

    gri=new CGrid**[pDoc->m_ngridy];这一句好象就不对;
    你的gri是怎么申请的?CGrid ***gir??
        
      

  3.   

    to lhxx:
    对,我的gri就是在Es2View.h中定义:
    class CEs2View : public CView
    {
    public:CGrid*** gri;
    .....
    请教怎么改。
      

  4.   

    我现在又把gri=new CGrid**[pDoc->m_ngridy];改为
    gri=new CGrid**[64];其他也相应作了修改,结果一执行就是非法操作。
        
      

  5.   

    观察一下本例,修改你的代码:
    int main(int argc, char* argv[])
    {
    char(* pTest)[9]=  new char[3][9];
    for(int i =0; i<3; i++)
    for(int j=0; j<9; j++)
    pTest[i][j] = 'a';
    delete[] pTest; return 0;
    }