求大神助力!运作出错,不明觉厉啊

求大神助力!运行出错,,,不明觉厉啊。。。
//huiwen.h
#include <iostream.h>
#define m 100

    struct stackstru                 // 定义栈
{
char stack[m];
        int  *base;
int   *top;
int stacksize;
};
    struct queuestru                //定义队列

    int   *base;
        int   front;
        int   rear;
};

class Huiwen  
{
public:
Huiwen();
virtual ~Huiwen();


    int InitStack(stackstru *s);           //初始化栈
    void ClearStack(stackstru *s);      //清空栈
    int StackEmpty(stackstru *s);          //判断栈是否空
    int Push(stackstru *s,char x);    //入栈操作
    char Pop(stackstru *s);           //出栈操作

    int InitQueue(queuestru *q);           //初始化为一个空的循环队列
    void ClearQueue(queuestru *q);      //清空队列
    int QueueEmpty(queuestru *q);          //判断队列是否为空
    int EnQueue(queuestru *q,char e);   //入队操作
    char DeQueue(queuestru *q);         //出队操作

};
//huiwen.cpp
#include "Huiwen.h"
#include "iostream.h"
#include "stdlib.h"

#define INCREASE 10
#define OVERFLOW 0
#define OK  1
#define ERROR 0
#define TRUE 1
#define FALSE 0
Huiwen::Huiwen()
{

}

Huiwen::~Huiwen()
{

}

//初始化栈
int Huiwen::InitStack(stackstru *s)                   
{
    s->base = (int*)new int[m];
if(!s->base) exit(OVERFLOW);
s->top = s->base ;
s->stacksize = m;
return OK;
}

//清空栈
void Huiwen::ClearStack(stackstru *s)
{
    s->top=0;
}

 //判断栈是否空
int Huiwen::StackEmpty(stackstru *s)                
{
    if (s->top==0)                        //栈顶为空
        return FALSE;
    else
        return TRUE;
}
//入栈操作
int Huiwen::Push(stackstru *s,char x)         
{
   if (s->top - s->base >= s->stacksize)                       //栈满