c语言中printf输不出东西怎么办

想做一个数制转换的代码但是最后可以输入但是无法输出
以下为我认为可能有问题的部分代码
int Pop(SqStack *S,SElemType *e)
{
if(S->top==S->base)return 0;
e=S->top;
S->top=S->top-1;
return 1;
}//Pop
void conversion()
{
scanf("%d",&N);//输入赋给N
InitStack(S);//构建一个空栈
while (N)
{
SElemType k;
k=N%8;//取余
Push(S,k);
N=N/8;
}
while(!StackEmpty(S))
{
Pop(S,e);
printf("%d\n",*e);

}

}
int main()
{
conversion();
return 0;
}

我觉得可能跟前面的将s->top中的内容赋给e有关
谢谢了

conversion()函数没有定义e,为啥直接在Pop(S,e);使用了e