在基于对话框的工程中,主界面对应Dlg类,在主界面中点击按钮“打开”,弹出MDI文档视图。
对应文档视图,创建了View类,Doc类和MainFrame类。
在View类中创建了一个堆栈结构GStack。
现在我在Dlg中可以调用View中的成员函数InitStack和变量gstack。
其中
typedef struct GStack{
GStackElem *elem;
int top;
};
InitStack(GStack *S):
{S->elem = new GStack [1440];
S->top = 0;
}
想在Dlg的函数中调用InitStack(&gstack);
为什么总是出现使用空指针的错误呢?

解决方案 »

  1.   

    我是这样调用的,在Dlg中建立一个View的对象v,然后在Dlg的函数中调用v->InitGStack(v->gstack)
    为什么总是出项使用空指针呢?是不是和内存有关系啊?
      

  2.   

    是空指针啊!InitStack传入的指针是空的啊,他是在函数内部才定义的.
      

  3.   

    v->gstack这个也是指针,也需要建立View后初始化的
      

  4.   

    在Dlg中建立一个View的对象v这是错误的,这个View的对象v和你的显示的View对象没有任何关系。应该是建立一个指向你的View对象的View*指针来引用。
      

  5.   

    在Dlg中的v是指向View对象的指针啊?
    如何解决啊?