+/** @brief Initialize a dynar structure that was not malloc'ed
+ * This can be useful to keep temporary dynars on the stack
+ */
+extern "C" void xbt_dynar_init(xbt_dynar_t dynar, const unsigned long elmsize, void_f_pvoid_t const free_f)
+{
+ dynar->size = 0;
+ dynar->used = 0;
+ dynar->elmsize = elmsize;
+ dynar->data = nullptr;
+ dynar->free_f = free_f;
+}
+
+/** @brief Destroy a dynar that was created with xbt_dynar_init */
+extern "C" void xbt_dynar_free_data(xbt_dynar_t dynar)
+{
+ xbt_dynar_reset(dynar);
+ if (dynar)
+ free(dynar->data);
+}
+