コード例 #1
0
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;
}
コード例 #2
0
ファイル: test_array.c プロジェクト: ASMlover/libc
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)
      );
}
コード例 #3
0
ファイル: template.c プロジェクト: adamsch1/ff
/**
 * 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);   
}