Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
#1

Invalid conversion from ‘char**’ to ‘const char**’ - C++

14.11.2013, 06:31. Просмотров 954. Ответов 17
Метки нет (Все метки)

Почему так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void deal(const int [][13], const char *[], const char *[]);
 
int main()
{
    char *suit[4] = {"Черви", "Бубны", "Трефы", "Пики"};
    char *face[13] = {"Туз", "Двойка", "Тройка", "Четверка",
                      "Пятерка", "Шестерка", "Семерка",
                      "Восьмерка", "Девятка", "Десятка",
                      "Валет", "Дама", "Король"};
    int deck[4][13] = {0};
 
    srand(time(NULL));
 
    shuffle(deck);
    deal(deck, face, suit);
 
    return 0;
}
 
void deal(const int wDeck[][13], const char *wFace[],
          const char *wSuit[])
{
      /*....*/
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 06:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Invalid conversion from ‘char**’ to ‘const char**’ (C++):

[Ошибка] invalid conversion from 'const char*' to 'char*' [-fpermissive] - C++
Решал задачи сам по себе, наткнулся на очень интересную. Вот сама задача: Вы оператор пуска ракет на ядерном подводном ...

Работа со строками - Invalid conversion from 'char' to 'const char*' - C++
#include <iostream> #include <ctype.h> #include <stdio.h> #include <string.h> using namespace std; void poisk(int n, char...

Ошибка invalid conversion from 'const char*' to 'char*' - C++
Я в С++ новенький. Поэтому опыта еще нет, да и знаний мало. ПОдскажите пожалуйста, чего вылетает ошибка invalid conversion from 'const...

Invalid conversion from ‘char’ to ‘const char*’ - C++
void checkFlag(int currArg, char argv, int msg_size){ if (strcmp(argv, "-s") == 0) if ((msg_size = atoi(argv)) == 0) exitMe(); ...

Invalid conversion from 'const char*' to 'char' - C++
Здравствуйте. Смысл нижеприведенного кода - сосчитать количество запятых и точек во вводимом тексте. Редкостный быдлокод, неудивительно,...

Invalid conversion from 'char' to 'const char*' - C++
доброго всем время суток. при компиляции у меня выдаёт ошибку invalid conversion from 'char' to 'const char*' знаю, что я не правильно...

17
Kuzia domovenok
2130 / 1958 / 197
Регистрация: 25.03.2012
Сообщений: 6,821
Записей в блоге: 1
14.11.2013, 07:27 #2
В чём проблема? Объяви suit и face как const char * suit[],
тем более, что он и является массивом указателей на константы на самом деле!
0
Angeline
37 / 31 / 2
Регистрация: 21.10.2013
Сообщений: 197
14.11.2013, 08:22 #3
Мне в такой ситуации посоветовали заменить кавычки на апострофы и заработало.
0
Raali
639 / 343 / 42
Регистрация: 06.07.2013
Сообщений: 1,107
Завершенные тесты: 1
14.11.2013, 10:18 #4
Цитата Сообщение от Angeline Посмотреть сообщение
Мне в такой ситуации посоветовали заменить кавычки на апострофы и заработало.
Где заменить, при объявлении?
0
Angeline
37 / 31 / 2
Регистрация: 21.10.2013
Сообщений: 197
14.11.2013, 11:07 #5
Raali, там где присваиваешь значения, в данном случае при объявлении.
0
Kuzia domovenok
2130 / 1958 / 197
Регистрация: 25.03.2012
Сообщений: 6,821
Записей в блоге: 1
14.11.2013, 11:19 #6
Цитата Сообщение от Angeline Посмотреть сообщение
Мне в такой ситуации посоветовали заменить кавычки на апострофы и заработало.
Жесть какая! Кто ж тебя программировать так учил, заменяя кавычки на авось? Одинарные и двойные кавычки в Си это две большие разницы, и надо не менять их абы как, а просто знать, что символьные константы заключаются в одинарные кавычки, а строковые литералы в двойные!!!

Что-то заменять бесполезно.
0
Angeline
37 / 31 / 2
Регистрация: 21.10.2013
Сообщений: 197
14.11.2013, 11:56 #7
Kuzia domovenok, сама учусь в меру сил. Была такая же ошибка. Создавала такую же тему. Только у меня там не указатели были правда, а просто массивы char в const char не хотели. Ну вот мне и посоветовали поменять. Поменяла - заработало.

Добавлено через 27 секунд
Kuzia domovenok, и не надо так агрится, неприятно.
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
14.11.2013, 12:50 #8
Цитата Сообщение от Angeline Посмотреть сообщение
Поменяла - заработало.
Так покажите что Вы и где меняли. Вероятно там речь идет совершенно о другом.
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
14.11.2013, 15:37  [ТС] #9
Kuzia domovenok, почему тогда в книгах пишут именно так? Просто поставить константу, это лишает нас возможности менять что-то..
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
14.11.2013, 15:44 #10
Цитата Сообщение от Ryuk Посмотреть сообщение
Просто поставить константу, это лишает нас возможности менять что-то..
А вы и не имеете права менять данные строковых литералов. Это ведет к UB.

Цитата Сообщение от Ryuk Посмотреть сообщение
почему тогда в книгах пишут именно так?
В каких? Цитата и ссылка не помешали бы.
0
Kuzia domovenok
2130 / 1958 / 197
Регистрация: 25.03.2012
Сообщений: 6,821
Записей в блоге: 1
14.11.2013, 15:49 #11
Ryuk, а что, до этого (без константы) возможность менять что-то, можно подумать, была?
Это же строковые литералы! запусти это!
C++
1
2
3
4
5
6
7
8
9
int main(){
    setLocale(LC_ALL, "Russian");
    char *suit[4] = {"Черви", "Бубны", "Трефы", "Пики"};
    cout<<suit[0]<<endl;//"Черви"
    suit[0][1]='у';          //нельзя
    suit[0][3]='к';          //нельзя
    cout<<suit[0]<<endl;//"Чурки"
    return 0;
}
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
14.11.2013, 16:07  [ТС] #12
Tulosba, где-то приводил уже. В Дейтелах, в K&R и т.д.
0
Kuzia domovenok
2130 / 1958 / 197
Регистрация: 25.03.2012
Сообщений: 6,821
Записей в блоге: 1
14.11.2013, 16:10 #13
Цитата Сообщение от Ryuk Посмотреть сообщение
Tulosba, где-то приводил уже. В Дейтелах, в K&R и т.д.
возможно ты путаешь эти две большие разницы
C++
1
2
char *suit="Черви";
char suit[]="Черви";
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
14.11.2013, 16:38  [ТС] #14
Kuzia domovenok, никак нет)
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
14.11.2013, 17:12 #15
Ryuk, K&R вообще к плюсам не относится. Там и const не было нормального.
0
14.11.2013, 17:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2013, 17:12
Привет! Вот еще темы с ответами:

Invalid conversion from `int' to `const char*' - C++
Здравствуйте.Возникла проблема с типами данных, пытался решить - стало хуже...:wall: Вот сам код: #include &lt;iostream&gt; #include...

Несовместимость типов данных: Error:invalid conversion from 'int' to 'const char*' - C++
Код для ардуинки. #include &lt;VirtualWire.h&gt; const int led_pin = 13; const int transmit_pin = 12; void setup() { ...

Error: invalid conversion from 'char' to 'char*' [-fpermissive]| - C++
Ребят что не так я делаю? Если что я только начал указатели, условие задачи: Напишите функцию, которая запрашивает у пользователя его имя...

invalid conversion from "const char*" to "char" - C++
Помогите, пожалуйста, найти проблему. Arguments.h #include&lt;iostream&gt; class Arguments { public: Arguments(int iArgc,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru