new_list = malloc(sizeof(void *)*(n+2));
- if (n)
+ if (n) {
memcpy(new_list, list, sizeof(void *)*n);
+ free(list);
+ }
new_list[n] = new_item;
new_list[n+1] = NULL;
- free(list);
-
return new_list;
}
+void **list_add_list(void **list1, void **list2)
+{
+ int n1, n2, n;
+ void **list;
+
+ n1 = list_length(list1);
+ n2 = list_length(list2);
+
+ n = n1 + n2 + 1;
+
+ list = malloc(sizeof(void *)*(n+1));
+
+ memcpy(list, list1, n1*sizeof(void *));
+ memcpy(list+n1, list2, n2*sizeof(void *));
+
+ list[n1+n2] = NULL;
+
+ free(list1);
+
+ return list;
+}
+