I\'ve got a function that requires const some_type**
as an argument (some_type
is a struct, and the function needs a pointer to an array of this ty
You have a few options to get around what jamesdlin outlined in his answer.
You could use an intermediate variable.
some_type const* const_some_array = some_array;
f(&const_some_array);
You could change the parameters of f
.
void f(some_type const* const* some_array);
See: Why can't I pass a char ** to a function which expects a const char **? from the comp.lang.c FAQ.
You probably need to specify some more context, for instance is the argument passed data into or out of (or both?) the function?
Try making your variable const as well:
some_type const *some_array = ....;
This reads as "some_array is a pointer to a const some_type". The code can't modify the thing being pointed at. So you have to declare your variable const before passing it to the function.
(Edited...)