1
TypeStack *Stack;
FEmpty(Stack);
Stack
неинициализирован - ничего не указывает на мусор.
В FEmpty
вы немедленно разыменовываете (недействительный) указатель, вызывая неопределенное поведение.
Вам нужно либо выделить структуру, используя malloc
, либо просто объявить локальную переменную:
TypeStack Stack;
FEmpty(&Stack);
2
Stack->Top = (Pointer)malloc(sizeof(Cell*));
Далее, вы не выделяете здесь достаточно памяти. Вы только назначаете размер самого указателя , а не структуру, на которую он указывает.
Используйте эту конструкцию, чтобы избежать этой ошибки. И не разыгрывайте результат malloc
.
Stack->Top = malloc(sizeof(*Stack->Top));