'Invalid conversion from some_type** to const some_type**'

前端 未结 3 1428
生来不讨喜
生来不讨喜 2020-12-11 03:59

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

相关标签:
3条回答
  • 2020-12-11 04:47

    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);
    
    0 讨论(0)
  • 2020-12-11 04:50

    See: Why can't I pass a char ** to a function which expects a const char **? from the comp.lang.c FAQ.

    0 讨论(0)
  • 2020-12-11 05:02

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

    0 讨论(0)
提交回复
热议问题