Стек из строк, программа сегфолтится - 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--]
возвращается из функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д