/** @brief Transform a dynar into a NULL terminated array. * * \param dynar the dynar to transform * \return pointer to the first element of the array * * Note: The dynar won't be usable afterwards. */ inline void *xbt_dynar_to_array(xbt_dynar_t dynar) { void *res; xbt_dynar_shrink(dynar, 1); memset(xbt_dynar_push_ptr(dynar), 0, dynar->elmsize); res = dynar->data; free(dynar); return res; }
static void array_new(unsigned **a, xbt_dynar_t *data) { int i; *a = xbt_malloc(ARRAY_SIZE * sizeof **a); *data = xbt_dynar_new(sizeof *a, NULL); xbt_dynar_shrink(*data, ARRAY_SIZE); for (i = 0 ; i < ARRAY_SIZE ; i++) { (*a)[i] = i; xbt_dynar_push_as(*data, void*, &(*a)[i]); } }