diff options
Diffstat (limited to 'hw1/basic-array2.c')
-rw-r--r-- | hw1/basic-array2.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/hw1/basic-array2.c b/hw1/basic-array2.c new file mode 100644 index 0000000..848ec67 --- /dev/null +++ b/hw1/basic-array2.c @@ -0,0 +1,27 @@ +#include "xwrap.h" +#include <stdlib.h> +#include "basic-array.h" + +ArrayTwo* array_two_create(int itemsize, int lenx, int leny){ + if(lenx <= 0 || leny <= 0 || itemsize <= 0){ + return NULL; + } + ArrayTwo* arr = (ArrayTwo*)xmalloc(sizeof(ArrayTwo)); + if(arr == NULL){ + return NULL; + } + arr->arr_itemsize = itemsize; + arr->arr_lenx = lenx; + arr->arr_leny = leny; + arr->arr_data = xmalloc(itemsize*lenx*leny); + if(arr->arr_data == NULL){ + free(arr); + return NULL; + } + return arr; +} + +void array_two_free(ArrayTwo* arr){ + free(arr->arr_data); + free(arr); +} |