问题遇到的现象和发生背景
c语言
用代码块功能插入代码,请勿粘贴截图
#include<stdio.h>
#include<Windows.h>
#include<math.h>
#define StackSize 100
//定义栈
struct SeqStack
{
char data[StackSize];
int top;
};
//置空栈
void InitStack(struct SeqStack *s)
{
s->top=-1;
}
//判空栈
int StackEmpty(struct SeqStack *s)
{
if( s->top==-1)
return 1;
else
{
printf("栈不为空");
return 0;
}
}
//判满栈
int StackFull(struct SeqStack *s)
{
if(s->top==StackSize-1)
{
return 1;
}
else
{
return 0;
}
}
//进栈
void Push(struct SeqStack *s,char x)
{
if(StackFull(s))
printf("栈已满");
else
s->data[++s->top]=x;
}
//退栈
char Pop(struct SeqStack *s)
{
if(StackEmpty(s))
printf("栈已空");
else
return s->data[s->top--];
}
//遍历栈
void PrintfStack(SeqStack *s){
for(int i=0;i<s->top;i++)
printf("s%",s->data[i]);
}
int main()
{
struct SeqStack *l;
InitStack(l);
Push(l,1);
Push(l,2);
Push(l,3);
Push(l,4);
Push(l,5);
PrintfStack(l);
}
运行结果及报错内容
“Pop”: 不是所有的控件路径都返回值
使用了未初始化的局部变量“l”
我的解答思路和尝试过的方法
是没有初始化指针,给他分配内存空间吗?
如果要如何操作,这方面知识盲区