Я пытаюсь создать стек, но у меня возникла проблема с его инициацией.Код, который у меня есть:
#define LINELN 72
#define STACKSZ 25
#define NEWLN '\n'
#include <stdlib.h>
#include <stdio.h>
// interface struct for stack
typedef struct stack {
char data[STACKSZ];
int top;
} stack;
void initstk(stack *s1);
int emptystk(stack s);
int main() {
stack s1;
initstk(s1);
printf("%d",emptystk(s1));
exit(0);
}
void initstk(stack *s1) {
s1->top=-1;
}
int emptystk(stack s) {
if(s.top == -1){
return 1;
}
else{
return 0;
}
}
Я хочу, чтобы он распечатал 1, так как стопка пуста, но она все еще распечатывается 0.Я не очень понимаю.Может ли это быть из-за указателя?