I want to implement the following function to print the contents of several char strings which are referenced through a pointer array. How can I determine how
You cannot pass arrays as function arguments in C. Array names decay to pointers to their first element when used as a function argument, and you must separately specify the number of available array elements.
(In the context of a function parameter type, T[] and T* and T[12] are identical, so your function paramter might as well be char ** arr.)
Like so:
void printCharArray(char ** arr, size_t len) { /* ... */ }
int main()
{
char * arr[10] = { "Hello", "World", /* ... */ };
printCharArray(arr, sizeof(arr)/sizeof(*arr));
}
(Alternatively you can supply a "first" and a "one-past-the-end" pointer, which might be a bit more natural.)