Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

C++ Аргумент const char несовместим с параметром типа char , как решить?

  • Автор темы Автор темы dota
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
13 Мар 2018
Сообщения
309
Реакции
52
Код:
Expand Collapse Copy
void print_string(float x, float y, char* text, float r, float g, float b)
{
    static char buffer[99999]; // ~500 chars
    int num_quads;

    num_quads = stb_easy_font_print(x, y, text, NULL, buffer, sizeof(buffer));

    glColor3f(r, g, b);
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(2, GL_FLOAT, 16, buffer);
    glDrawArrays(GL_QUADS, 0, num_quads * 4);
    glDisableClientState(GL_VERTEX_ARRAY);

}

1637084049396.png

помогите
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
void print_string(float x, float y, const char* text, float r, float g, float b)
:kappa:
 
так покажи как правильно, хули выёбываешься?
Во первых, где я выебываюсь? Во вторых скажи спасибо что подсказываю, иначе вы сами ничему никогда не научитесь.
Это не по стандарту языка. Если функция не изменяет строку она должна хавать константу, иначе наоборот. Когда ты кастуешь константу к "не константе" то ты говоришь компилятору "заткнись, я знаю что делаю", но последствиями могут быть ошибки записи, если функция начнет писать по адресу строки, потому что обычно такие данные выделяются в секции, которая доступна только для чтения. В данном случае надо было просто поменять тип параметра на const char*.

Такого быть не может, потому семантика не меняется.
 
Последнее редактирование:
Можете воспользоваться компилятором C, а не C++, либо же преобразуйте типы с помощью const_cast<char*>(someString). Второй вариант будет очень полезен, если хотите легко подружиться с функциями WinApi.
 
Назад
Сверху Снизу