遇到一简单的有关问题无从上手,忘高手解答【小的新手】

遇到一简单的问题无从下手,忘高手解答【小的新手】
#include <iostream>
using namespace std;
typedef struct
{
int elem[100];
int top;

}SeqStack;
SeqStack *a;

void main()
{
void InitStack(SeqStack *S);
InitStack(a);

}

void InitStack(SeqStack *S)
{
S->top=-1; //这里出错,编译可以通过,但是无法运行
}

以上只是一个简单的顺序栈的初始化,楼主想通过函数的调用来构造一个空栈,但是没有成功,不知道哪位大神能给出错误的本质原因

------解决方案--------------------
探讨

小弟明白了
应该是
定义对象是为
SeqStack a;//定义一个对象而非指针。
然后InitStack函数调用时应为IntiStack(&amp;a); //注意函数实参

小弟还是个菜,这种低级错误,贻笑大方了