In C how to get number of items in array of pointers to char strings

后端 未结 5 1080
别跟我提以往
别跟我提以往 2020-12-11 06:03

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

5条回答
  •  佛祖请我去吃肉
    2020-12-11 06:08

    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.)

提交回复
热议问题