Вы не можете присвоить значение в объявлении структуры таким образом.
stack s = { -1, 0 };
Попробуйте это.
Технически, если вы используете C ++, вы можете определить конструктор для struct. Я не думаю, что это работает для C. Используйте вышеперечисленное, если вы строго находитесь в среде C.
typedef struct _stack
{
int index = -1;
stack_node *head;
_stack() {
index = -1;
head = 0;
}
} stack;
Как то так. Дайте мне знать, если это не сработает, потому что я пишу базу на небольшом количестве памяти и долгое время не писал много Си.
UPDATE:
Мне нравится ответ @mouviciel, я не знал, что можно инициализировать индивидуальную переменную-член с помощью префикса. спереди. Узнал что-то. Спасибо.