Привет. Стек через массив.
Не работает push(), скорее я где-то накосячил.
Должно в стеке в итоге быть 0 .. 9, а там фигня.
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
void push(int *stack, int *sp, int x);
int pop(int *stack, int *sp);
int main() {
int *stack = malloc(sizeof(int) * SIZE);
int *sp = stack;
for (int i = 0; i < SIZE; i++)
push(stack, sp, i);
for (int i = 0; i < SIZE; i++)
printf("%i\n", stack[i]);
free(stack);
return 0;
}
int pop(int *stack, int *sp) {
return stack[*sp--];
}
void push(int *stack, int *sp, int x) {
stack[*sp++] = x;
}
В чем ошибка?