diff options
| author | Paul Buetow <paul@buetow.org> | 2008-11-04 21:20:56 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-11-04 21:20:56 +0000 |
| commit | ff0828f06a1f317681c45402feda48bde592a076 (patch) | |
| tree | 7c94275d5ab8b140cd41659d567c09bdc7ca9f16 /src/data/array.c | |
| parent | 48cf82bfc6cd65cc95f7658582fc532602a85ac0 (diff) | |
array_new_size
array_new_copy
implemented
Diffstat (limited to 'src/data/array.c')
| -rw-r--r-- | src/data/array.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/data/array.c b/src/data/array.c index 09022ff..6a2b1fa 100644 --- a/src/data/array.c +++ b/src/data/array.c @@ -44,6 +44,29 @@ array_new() { return (p_array); } +Array* +array_new_size(int i_size) { + Array *p_array = malloc(sizeof(Array)); + + p_array->i_size = 0; + p_array->pp_ae = NULL; + array_resize(p_array, i_size); + + return (p_array); +} + +void +_array_new_copy_cb(void *p_array, void *p_void) { + array_unshift(p_array, p_void); +} + +Array* +array_new_copy(Array *p_array) { + Array *p_array_cpy = array_new_size(array_get_size(p_array)); + array_iterate2(p_array, _array_new_copy_cb, p_array_cpy); + + return (p_array_cpy); +} void array_delete(Array *p_array) { |
