Страницы

Поиск по вопросам

понедельник, 29 апреля 2019 г.

Приведение const char* к char*

Пытаюсь с QByteArray получить указатель на данные с помощью data(), ругается:
ошибка: invalid conversion from 'const char*' to 'char*' [-fpermissive] char * TempPtrBuff = ARes.data();
В документации пишется, что возвращается char *
Почему может возникать ошибка?


Ответ

Результат вывода QByteArray::data() зависит от константности метода, в котором производится вызов обозначенной функции. Проще говоря:
void MyClass::method() { char *data = ARes.data(); }
void MyClass::method() const { const char *data = ARes.data(); }
Соответственно, если вывод QByteArray::data() отличен от желаемого, то измените константность метода или осуществите приведение типа, например, тем же const_cast()

Комментариев нет:

Отправить комментарий