/* add an element to the vector */ void Vector_add(Vector* vector, void* elem) { void* target; if (vector) { if (vector->size == vector->capacity) Vector_grow(vector); /* target will point to the next empty space in the vector */ target = (char*) vector->base + vector->elem_size * vector->size++; /* copy the data in */ memcpy(target, elem, vector->elem_size); } }
int Vector_add(Vector v, char* p) { /* grow the vector if necessary */ if (v->size>=v->allocated) { if (Vector_grow(v)<0) return -1; } v->v[v->size]=p; v->size++; return 0; }