aboutsummaryrefslogtreecommitdiffstats
path: root/l4darr
diff options
context:
space:
mode:
Diffstat (limited to 'l4darr')
-rw-r--r--l4darr/d2array.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/l4darr/d2array.c b/l4darr/d2array.c
index d0dc88f..7b39c28 100644
--- a/l4darr/d2array.c
+++ b/l4darr/d2array.c
@@ -1,9 +1,26 @@
#include <stdlib.h>
#include <l4darr.h>
-L4DA2* l4da2_create_setmax(int itemsize, L4XY len, L4XY maxlen){
- if(len.x < 0 || len.y < 0 || maxlen.x < 0 || maxlen.y < 0)
+L4DA2* l4da2_create_setmax(int itemsize, int lenx, int leny){
+ if(lenx <= 0 || leny <= 0 || itemsize <= 0){
return NULL;
}
- L4DA2* arr = (L4DA2*)malloc();
+ L4DA2* arr = (L4DA2*)malloc(sizeof(L4DA2));
+ if(arr == NULL){
+ return NULL;
+ }
+ arr->arr_itemsize = itemsize;
+ arr->arr_lenx = lenx;
+ arr->arr_leny = leny;
+ arr->arr_data = malloc(itemsize*lenx*leny);
+ if(arr->arr_data == NULL){
+ free(arr);
+ return NULL;
+ }
+ return arr;
+}
+
+void l4da2_free(L4DA2* arr){
+ free(arr->arr_data);
+ free(arr);
}