#include <stdio.h>
typedef struct stack_s {
char data[256]; // overflow me!
unsigned char ptr;
} stack_t;
int stackInit( stack_t *this) {
if (!this) return 1; //error error...
this->ptr = 0;
return 0; // success!
}
int stackPush( stack_t *this, char value) {
this->data[this->ptr] = value;
this->ptr++;
return 0; // success!
}
char stackPop( stack_t *this ) {
this->ptr--;
return this->data[this->ptr];
}
int main(void) {
stack_t myStack;
stackInit( &myStack );
stackPush( &myStack, 'o');
stackPush( &myStack, 'n');
stackPush( &myStack, 'a');
printf("%c", stackPop( &myStack));
printf("%c", stackPop( &myStack));
printf("%c\n", stackPop( &myStack));
return 0; // success!
}