Если вы хотите использовать оператор
createStack(&stack);
, тогда stack
должен был быть объявлен как stack stack
без *
таким образом, что он будет размещен настек вашей программы.
в случае stack *stack
вы передаете неинициализированный указатель на функцию createStack
, которая может привести к сбою вашей программы.
, если вы все еще хотите использоватьstack *stack
Вы должны динамически распределять память для этого указателя, т.е. используя malloc
.