Exemplo n.º 1
0
int main()
{

    // four possible ways of passing 2d arrays to a function;
    // 1. array to array
    //    a[m][n] -> b[m][n]
    // 2. array to pointer
    //    a[m][n] -> *p
    // 3. array to 1d pointer
    //    a[m][n] -> (*q)[n]
    // 4. array to 2d pointer
    //    a[m][n] -> (*q)[m][n]

    int arr[][2] = {
            {11, 12},
            {21, 22},
            {31, 32},
            {41, 42},
            {51, 52},
    };
    int m, n;
    m = 5;
    n = 2;

    array_to_array(arr, m, n);
    array_to_pointer(arr, m, n);
    array_to_1d_pointer(arr, m, n);
    array_to_2d_pointer(arr, m, n);
}
Exemplo n.º 2
0
int main(int argc, char **argv)
{
  ARRAY *a;
  SCAN *scan;
  char *str;
  int i;

  scan = scan_create(1, stdin);
  scan->delims = "+-=/";
  scan->whites = " \t\n";
  scan->comments = "";
  
  a = array_create(5, char);

  printf("> ");
  while((str = scan_get(scan)) != NULL) {
    if(*str == '=') {
      scan->delims = ""; scan->whites = "\n";
      str = scan_get(scan);
      scan->delims = "+-=/"; scan->whites = " \t\n";
      array_clear(a);
      array_append_ptr(a, str, strlen(str));
    }
    else if(*str == '+') {
      scan->delims = ""; scan->whites = "\n";
      str = scan_get(scan);
      scan->delims = "+-=/"; scan->whites = " \t\n";
      printf("append(%s)\n", str);
      array_append_ptr(a, str, strlen(str));      
    }
    else if(*str == '-') {
      scan->delims = ""; scan->whites = "\n";
      str = scan_get(scan);
      scan->delims = "+-=/"; scan->whites = " \t\n";
      printf("prepend(%s)\n", str);
      array_prepend_ptr(a, str, strlen(str));      
    }
    else if(*str == '/') {
      str = scan_get(scan);
      array_destroy_index(a, atoi(str));
    }
    else if(*str == '^') {
      str = scan_get(scan);
      i = atoi(str);
      str = scan_get(scan);
      scan->delims = "+-=/"; scan->whites = " \t\n";
      array_insert_index(a, *str, char, i);
    }
    str = array_to_pointer(a);
    printf(" \"%s\"\n> ", str);
    xfree(str);
  }