In C can I pass a multidimensional array to a function as a single argument when I don’t know what the dimensions of the array are going to be?
Besides, my multidimensional array may contain types other than strings.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You can do this with any data type. Simply make it a pointer-to-pointer:
But don’t forget you still have to malloc the variable, and it does get a bit complex:
The code to deallocate the structure looks similar – don’t forget to call free() on everything you malloced! (Also, in robust applications you should check the return of malloc().)
Now let’s say you want to pass this to a function. You can still use the double pointer, because you probably want to do manipulations on the data structure, not the pointer to pointers of data structures:
Call this function with:
Output: