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); }
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); }