Несоответствие типов переменных при создании символьного стека - C (СИ)
Формулировка задачи:
как задать правильно символьный стек,чтобы компилятор не ругался на меня?
#include <stdio.h> #include <stdlib.h> char *p; /* указатель на область свободной памяти */ char *tos; /* указатель на вершину стека */ char *bos; /* указатель на дно стека */ char stack[20]; /* Затолкать элемент в стек. */ int push(char i) { if(tos >= 20) { printf("Стек переполнен\n"); return tos; } stack[tos] = i; tos++; } /* Получить верхний элемент стека. */ char pop(void) { tos--; if(tos < 0) { printf("Стек пуст\n"); return 0; } return stack[tos]; } int main(void) { p = (char *) malloc(MAX*sizeof(char)); /* получить память для стека */ if(!p) { printf("Ошибка при выделении памяти\n"); exit(1); } tos = p; bos = p + MAX-1; return 0; }
Решение задачи: «Несоответствие типов переменных при создании символьного стека»
textual
Листинг программы
% cc test.c Pushed a Pushed b Pushed c Pushed d Pushed e Pushed f Pushed g Pushed h Pushed i Pushed j Стек переполнен Poped j Poped i Poped h Poped g Poped f Poped e Poped d Poped c Poped b Poped a Стек пуст
Объяснение кода листинга программы
- Создание символьного стека.
- Ввод символов в стек.
- Переполнение стека.
- Извлечение символов из стека.
- Очистка стека.
- Проверка на пустой стек.
- Вывод сообщения об ошибке.
- Вывод сообщения о состоянии стека.
- Завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д