void array_remove_front(array* arr) { assert(arr != NULL); assert(!array_empty(arr)); int new_length = arr->length - 1; void** new_elements = (void**) malloc(sizeof(void*) * new_length); for (int i = 1; i < arr->length; ++i) { new_elements[i - 1] = arr->elements[i]; } free(arr->elements); arr->elements = new_elements; arr->length = new_length; }
static void array_object_show(void* A) { fprintf(stdout, " show object of array :\n" "\t__array__ -> {\n" "\t object=>0x%p,\n" "\t size=>%d,\n" "\t empty=>'%s',\n" "\t begin=>0x%p,\n" "\t end=>0x%p,\n" "\t front=>0x%p,\n" "\t back=>0x%p,\n" "\t}\n", A, array_size(A), (array_empty(A) ? "yes" : "no"), array_begin(A), array_end(A), array_front(A), array_back(A) ); }
/** * Load, parse, evaulate, display, with a form */ void template_run_form( char *path, struct form_t *form, struct array_t *them ) { struct array_t *arr = array_new(); node *n; /* If not empty we validated */ if( ! array_empty( form->err) ) { array_add_obj( arr, "errors", form->err ); } for( n=array_first( form->clean ); n != NULL; n = array_next( form->clean ) ) { // printf("F**K %s %s\n", n->key, n->value ); array_add_str( arr, n->key, nully(n->value) ); } template_run( path, arr ); array_free(arr); }