Стек из строк, программа сегфолтится - C (СИ)
Формулировка задачи:
Пытаюсь сделать простейший стек, программа сегфолтится при попытке обратиться к функции pop().
Где я ошибаюсь?
Листинг программы
- #include <stdio.h>
- #define MAX 100
- char *myStack[MAX];
- int top = 0;
- void push(char*);
- const char* pop(void);
- int main(int argc, char **argv)
- {
- push("fff");
- printf("%s\n", pop());
- return 0;
- }
- void push(char *str)
- {
- if (top < MAX)
- myStack[top++] = str;
- }
- const char* pop(void)
- {
- if (top >= 0)
- return myStack[top--];
- return 0;
- }
Решение задачи: «Стек из строк, программа сегфолтится»
textual
Листинг программы
- return myStack[top--];
Объяснение кода листинга программы
myStack
- это массив или другой тип данных, который используется для хранения строк.top
- это переменная, которая используется для отслеживания индекса верхнего элемента в стеке.myStack[top--]
- это выражение, которое используется для получения значения верхнего элемента в стеке и уменьшения значения переменнойtop
на 1.- Значение выражения
myStack[top--]
возвращается из функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д