// an example of an array of strings #include #include int string_length(char * my_string) { int counter = 0; while(1) { if (my_string[counter] != 0) { counter++; } else { break; } } return counter; } char * copy_string(char * input) { int length = string_length(input); char * result = (char *) malloc(sizeof(char) * (length + 1)); int i; for (i = 0; i <= length; i++) { result[i] = input[i]; } return result; } // initializing an array of strings in a function. // see example10.cpp for a simpler version, that // initializes an array of string without calling a function. void foo(char *** a) { *a = (char **) malloc(sizeof(char*) * 3); (*a)[0] = copy_string("yes"); (*a)[1] = copy_string("no"); (*a)[2] = copy_string("maybe"); } int main() { char ** a; foo(&a); printf("a[0] = %s\n", a[0]); printf("a[1] = %s\n", a[1]); printf("a[2] = %s\n", a[2]); }