Другие ответы подробно описали, почему это ошибка в C ++.
Позвольте мне ответить на вопрос, стоящий за вашим вопросом. Вы хотели заявить в интерфейсе вашей функции, что ваша функция не будет изменять значения с плавающей точкой, содержащиеся в массиве. Хорошее намерение и позволяет вызывать вашу функцию с const float **
массивами. Вопрос, стоящий за вашим вопросом, заключается в том, как этого добиться, не решаясь на уродливые приведения.
Правильный способ достижения желаемого - изменить тип параметра функции на const float * const *
.
Дополнительные const
между звездочками гарантируют компилятору, что ваш метод не будет пытаться хранить указатели на const float в массиве, поскольку этот тип объявляет, что значения указателей также являются постоянными.
Теперь вы можете вызывать эту функцию с помощью float **
(который был примером в вашем вопросе), const float **
и const float * const *
аргументов.