Стек из строк, программа сегфолтится - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Пытаюсь сделать простейший стек, программа сегфолтится при попытке обратиться к функции pop().
Листинг программы
  1. #include <stdio.h>
  2. #define MAX 100
  3. char *myStack[MAX];
  4. int top = 0;
  5. void push(char*);
  6. const char* pop(void);
  7. int main(int argc, char **argv)
  8. {
  9. push("fff");
  10. printf("%s\n", pop());
  11. return 0;
  12. }
  13. void push(char *str)
  14. {
  15. if (top < MAX)
  16. myStack[top++] = str;
  17. }
  18. const char* pop(void)
  19. {
  20. if (top >= 0)
  21. return myStack[top--];
  22. return 0;
  23. }
Где я ошибаюсь?

Решение задачи: «Стек из строк, программа сегфолтится»

textual
Листинг программы
  1. return myStack[top--];

Объяснение кода листинга программы

  1. myStack - это массив или другой тип данных, который используется для хранения строк.
  2. top - это переменная, которая используется для отслеживания индекса верхнего элемента в стеке.
  3. myStack[top--] - это выражение, которое используется для получения значения верхнего элемента в стеке и уменьшения значения переменной top на 1.
  4. Значение выражения myStack[top--] возвращается из функции.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы