[ create a new paste ] login | about

Link: http://codepad.org/Q6DnnCy7    [ raw code | output | fork ]

C, pasted on Aug 3:
#include <stdio.h>
#include <stdlib.h>

#define DEF_SIZE 3

typedef struct {
  char *data;
  int length;
  int allocated;
} Stack;

void init(Stack *stack) {
  stack->data = (char *) malloc(sizeof(char) * DEF_SIZE);
  stack->length = 0;
  stack->allocated = DEF_SIZE;
}

void push(char c, Stack *stack) {
  if (++stack->length > stack->allocated) {
    stack->data = (char *) realloc(stack->data, sizeof(char) * (stack->length));
  }
  stack->data[stack->length - 1] = c;
}

char pop(Stack *stack) {
  return stack->data[--stack->length];
}

#define N 10
int main() {
  int i;
  char c;
  Stack s;
  init(&s);
  for (i = 0; i < N; i++) {
    push((c = 'a' + i), &s);
    putchar(c);
  }
  putchar('\n');
  while ((c = pop(&s)) != 0)
    putchar(c);
  putchar('\n');
  return 0;
}
/* end */


Output:
1
2
3
abcdefghij
jihgfedcba����`


Create a new paste based on this one


Comments: