void push(dynarray *array, element x) {
if (array->size >= array->capacity) {
element *new_data = malloc((9 * array->capacity / 8 + 4) * sizeof(element));
for (int i = 0; i < array->size; i++) {
new_data[i] = array->begin[i];
}
free(array->begin);
array->begin = new_data;
array->capacity = 9 * array->capacity / 8 + 4;
}
array->begin[array->size] = x;
array->size++;
}
void free_array(dynarray *array) {
free(array->begin);
}
element get(dynarray *tab, int i) {
assert(i < tab->size);
return tab->begin[i];
}