synacor_challenge

OSCON Synacor Challenge
git clone https://git.pngu.org/synacor_challenge
Log | Files | Refs | README

stack.c (402B)


// synacor challenge (jack@pngu.org)
#include "stack.h"

void stack_init(Stack *s) {
  s->data = malloc(UINT16_MAX);
  s->pointer = 0;
}

void stack_free(Stack *s) { free(s->data); }

void stack_push(Stack *s, u16 value) {
  s->data[s->pointer] = value;
  s->pointer = s->pointer + 1;
}

u16 stack_pop(Stack *s) {
  u16 value = s->data[s->pointer - 1];
  s->pointer = s->pointer - 1;
  return value;
}