void *v_pstr (Vector vec, char *data) { if (vec->len >= vec->mlen) { vec->mlen = V_NEXT_LENGTH(vec->mlen); vec->data = realloc (vec->data, vec->mlen * vec->siz); } memcpy (DATA(vec->len), data, strlen (data) + 1); ++ vec->len; return v_at (vec, vec->len - 1); }
void *v_push (Vector vec, void *data) { if (vec->data == NULL) panic("NULL vector"); if (vec->len >= vec->mlen) { vec->mlen = V_NEXT_LENGTH(vec->mlen); vec->data = realloc (vec->data, vec->mlen * vec->siz); } memcpy (DATA(vec->len), data, vec->siz); ++ vec->len; return v_at (vec, vec->len - 1); }