#include "vector.h" #include ihct_vector *ihct_vector_init() { ihct_vector *v = malloc(sizeof(*v)); if(v == NULL) { printf("Couldn't allocate memory for vector.\n"); exit(EXIT_FAILURE); } v->size = 0; v->data = NULL; return v; } void ihct_vector_add(ihct_vector *v, void *obj) { if(v->size == 0) { // Allocate a single v->data = malloc(sizeof(obj)); if(v->data == NULL) { printf("Couldn't allocate memory for object.\n"); exit(EXIT_FAILURE); } v->data[0] = obj; } else { void *p = realloc(v->data, (v->size + 1) * sizeof(obj)); if(p == NULL) { printf("Couldn't allocate memory for object.\n"); exit(EXIT_FAILURE); } v->data = p; v->data[v->size] = obj; } v->size++; } void *ihct_vector_get(ihct_vector *v, int index) { return v->data[index]; } void ihct_vector_free(ihct_vector *v) { free(v->data); free(v); }