#include #include #include #include "buffer.h" buffer buf_create (size_t initial_size) { buffer b = (buffer) malloc (sizeof (struct buffer)); assert (b != NULL); b->size = initial_size; if (initial_size != 0) { b->elements = (void *) malloc (sizeof (void *) * initial_size); assert (b->elements != NULL); } else b->elements = NULL; return b; } void buf_resize (buffer b, size_t new_size) { b->size = new_size; b->elements = realloc (b->elements, b->size * sizeof (void *)); assert (new_size == 0 || b->elements != NULL); } void buf_free (buffer b) { if (b->size != 0) free (b->elements); free (b); }