[PATCH] Dynamic growable arrays for internal use
Joseph Myers
joseph@codesourcery.com
Mon Apr 24 14:06:00 GMT 2017
On Sat, 22 Apr 2017, Florian Weimer wrote:
> +/* To use the dynarray facility, you need to include
> + <malloc/dynarray-skeleton.c> and define the parameter macros
> + documented in that file.
> +
> + A minimal example which provides a growing list of integers can be
> + defined like this:
> +
> + struct int_array
> + {
> + int *array;
> + size_t length;
> + };
> +
> + #define DYNARRAY_STRUCT dynarray_int
> + #define DYNARRAY_ELEMENT int
> + #define DYNARRAY_PREFIX dynarray_int_
> + #define DYNARRAY_FINAL_TYPE struct int_array
> + #include <malloc/dynarray-skeleton.c>
> +
> + To create a three-element array with elements 1, 2, 3, use this
> + code:
> +
> + struct dynarray_int dyn;
> + dynarray_int_init (&dyn);
> + int *place = dynarray_int_emplace (&dyn);
Should this first call to dynarray_int_emplace outside the loop be there?
The result doesn't seem to be used.
> + for (int i = 1; i <= 3; ++i)
> + {
> + int place = dynarray_int_emplace (&dyn);
> + assert (place != NULL);
> + *place = i;
> + }
Should this actually be int *place inside the loop?
(I have not reviewed the substance of the patch.)
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list