From e0be1ee5b8e51b670aef863db1309ffd3be818d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Thu, 15 Jun 2017 11:57:43 +0200 Subject: array: add array initialization utility function Reuses the element size from another array. --- array.c | 4 ++++ array.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/array.c b/array.c index d0f937d..b65ad12 100644 --- a/array.c +++ b/array.c @@ -11,6 +11,10 @@ void array_init(Array *arr) { array_init_sized(arr, sizeof(void*)); } +void array_init_from(Array *arr, Array *from) { + array_init_sized(arr, from->elem_size); +} + void array_init_sized(Array *arr, size_t elem_size) { memset(arr, 0, sizeof *arr); arr->elem_size = elem_size; diff --git a/array.h b/array.h index 8417f7d..80b3619 100644 --- a/array.h +++ b/array.h @@ -43,6 +43,8 @@ void array_init(Array*); * Initalize an Array object to store arbitrarily sized objects. */ void array_init_sized(Array*, size_t elem_size); +/** Initialize Array by using the same element size as in ``from``. */ +void array_init_from(Array*, Array *from); /** Release storage space. Reinitializes Array object. */ void array_release(Array*); /** -- cgit v1.2.3