#include #include "safe.h" #include "vector.h" struct vector *vectorCreate() { struct vector *v = (struct vector *)safeMalloc(sizeof(struct vector)); v->a = (int *)safeMalloc(sizeof(int)); v->size = 1; v->length = 0; return v; } struct vector *vectorDelete(struct vector *v) { if(v) { free(v->a); free(v); } return (struct vector *)0; } void vectorSet(struct vector *v, int index, int value) { assert(v && index >= 0); if(index >= v->size) { do v->size *= 2; while(index >= v->size); v->a = (int *)safeRealloc((void *)v->a, v->size*sizeof(int)); } while(index >= v->length) { v->a[v->length] = 0; v->length++; } v->a[index] = value; } int vectorGet(struct vector *v, int index) { assert(v && index >= 0 && index < v->length); return v->a[index]; } int vectorLength(struct vector *v) { assert(v); return v->length; }