diff --git a/src/stack.c b/src/stack.c new file mode 100644 index 0000000..9609d03 --- /dev/null +++ b/src/stack.c @@ -0,0 +1,22 @@ +#include "stack.h" + +stack_t * StackAllocate(int size) { + stack_t *s=(stack_t *)MEMALLOC(sizeof(stack_t)); + StackInit(s,size,NULL); + return s; +} + +void StackCopy(stack_t *src, stack_t *dst) { + MEMCOPY(dst->data,src->data,src->sp*number_s); + dst->sp=src->sp; +} +void StackInit(stack_t *S,int size,number_t *data) { + S->size=size; + if (data==NULL) S->data=(number_t*)malloc(size); + else S->data=data; + S->sp=0; +} + +void StackReset(stack_t *S) { + S->sp=0; +}