struct stack_structure *st;
Это только создает указатель на struct stack_structure
.Он не выделяет память для самого struct stack_structure
.
Вы можете попробовать это:
struct stack_structure st;
st.stack_pointer = -1;
push_into_stack(&st,no);
Другой вариант - динамическое выделение (и освобождение) этой структуры:
struct stack_structure *st = malloc(sizeof(struct stack_structure));
...
// when you're done with it
free(st);