数据结构栈的初始化的具体实现

想请教下以下代码想达到栈初始化成功的实现,还请大家帮忙纠下错

//创建一个顺序栈
#include
#include
typedef int elemtype;
#define max 100
#define error 0
#define ok 1
typedef struct link
{
    elemtype  *top;  //定义头指针
    elemtype *bottom;  //定尾指针
    int maxsize;   //定义栈的最大容量
}Link;   //定义结构体类型
int initshed(Link * *header)   //对栈进行初始化(利用二重指针进行改变实参)
{
    (*header)->bottom=(elemtype *) malloc(max*sizeof(elemtype));  //给栈分配空间
    if( !(*header)->bottom)
        return error;
    (*header)->top=(*header)->bottom;   //头顶指针和尾指针指向同一位置
    (*header)->maxsize=max;   //栈的最大容量
    return ok;   //栈创建成功

}
void main()
{
   Link *header;
   int a;
   a= initshed(&header);
   printf("%d",a);
}