В чём моя ошибка с функцией Instack

    #include <iostream>

using namespace std;

struct stack{
    int info;
    stack *next;
}*top;

void inStack(){
    stack *save;
    cin >> save -> info;
    save -> next = top;
    top = save;
}

void menu(){
    int key = 1;
    while (key){
        cin >> key;
        switch(key) {
            case 1: inStack();
            default: break;
        }
    }
}

int main (){
    menu();
}

Ответы (1 шт):

Автор решения: AlexGlebe
void inStack(){

  // переменная указатель на структуру ни на что не указывает
  // (указатель равен случайному значению)
  // и это приводит к неопределённому поведению программы
  stack *save;

  cin >> save -> info;

Решается выделением свободного участка памяти для структуры.

stack *save = new stack ;
→ Ссылка