求助:第一次用vs2017学c语言,为啥运行不了,在vc++上面还能运行的?

求助大佬,这是怎么回事,要怎么才能解决?下面的显示是这样的:
图片说明

代码原文:

#define  OK    1
#define  ERROR  0
#define  OVERFLOW  -2
#define  STACK_INIT_SIZE  100
#define  STACKINCREMENT  10
typedef struct
{
    int *base;
    int *top;
    int stacksize;
}SqStack;
SqStack S;
int e;
int InitStack()
{
    S.base = (int*)malloc(STACK_INIT_SIZE * sizeof(int));
    if (!S.base)        return OVERFLOW;
    S.top = S.base;
    S.stacksize = STACK_INIT_SIZE;
    return OK;
}
int GetTop()
{
    if (S.top == S.base)        return ERROR;
    e = *(S.top - 1);
    return OK;
}
int Push(int g)
{
    if (S.top - S.base >= S.stacksize)
    {
        S.base = (int *)realloc(S.base,
            (S.stacksize + STACKINCREMENT) * sizeof(int));
        if (!S.base)   return OVERFLOW;
        S.top = S.base + S.stacksize;
        S.stacksize += STACK_INIT_SIZE;
    }
    *S.top++ = g;
    return OK;
}
int Pop()
{
    if (S.top == S.base)        return ERROR;
    e = *--S.top;
    return OK;
}
void main()
{
    int a[10];
    int i, j, k;
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &a[i]);
    }
    InitStack();
    for (j = 0; j < 10; j++)
        Push(a[j]);
    for (k = 10; k > 0; k--)
    {
        Pop();
        printf("%d  ", e);
    }
}

缺少include头文件
scanf printf来自 stdio.h
malloc 来自 stdlib.h