From a2316394d35eb548545730cbf2b57b27e733214c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Wed, 19 Apr 2017 10:08:18 +0200 Subject: array: implement array_resize --- array.c | 8 ++++++++ array.h | 3 +++ 2 files changed, 11 insertions(+) diff --git a/array.c b/array.c index 8328b06..25f471b 100644 --- a/array.c +++ b/array.c @@ -135,3 +135,11 @@ bool array_truncate(Array *arr, size_t len) { } return false; } + +bool array_resize(Array *arr, size_t len) { + if (len <= arr->count) { + arr->len = len; + return true; + } + return false; +} diff --git a/array.h b/array.h index b369d68..5664f5a 100644 --- a/array.h +++ b/array.h @@ -58,5 +58,8 @@ size_t array_length(Array*); size_t array_capacity(Array*); /* remove all elements at index >= length, keep allocated memory */ bool array_truncate(Array*, size_t length); +/* change length if it is less than the current capacity, newly + * accesible elements preserve their previous values */ +bool array_resize(Array*, size_t length); #endif -- cgit v1.2.3