Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 29.04.2021
Сообщений: 7

значение типа "const char *" нельзя использовать для инициализации сущности типа "char *

19.07.2022, 21:48. Показов 1469. Ответов 8

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
char* str[] = { {"красный"}, {"желтый"}, {"зеленый"} }; //здесь ошибка
        for (int i = 0; i < 3; i++) {
            cout << str[i] << endl;
        }
        cout << str[0][3] << str[1][1] << str[0][1];
        cout << str[2][5] << str[1][5] << endl;
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.07.2022, 21:48
Ответы с готовыми решениями:

Значение типа const char* нельзя использовать для инициализации сущности типа char*
#include &lt;iostream&gt; using namespace std; void color_scheme_func(char* color) { system(color); }

Значение типа const char * нельзя использовать для инициализации сущности типа lpstr
LPSTR lpszPipeName = &quot;\\\\.\\pipe\\$MyPipe$&quot;; Ругается в этой строке #include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include...

Ошибка "значение типа "const char [81]" нельзя использовать для инициализации сущности типа "const unsigned char [61]"
Прошу помощи, так как раньше прога работала, сейчас решил вернуться и выдает ошибку: #pragma once #include...

8
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13182 / 6818 / 1821
Регистрация: 18.10.2014
Сообщений: 17,255
19.07.2022, 22:01
Цитата Сообщение от zuzic Посмотреть сообщение
значение типа "const char *" нельзя использовать для инициализации сущности типа "char *
Да, это так. В чем ваш вопрос?
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
19.07.2022, 22:19
Оно же и подсказало.

Напишите:
const char* str[] = { "красный", "желтый", "зеленый" };
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,246
20.07.2022, 07:17
Если хочется, чтобы это был неконстантный массив, то нужно явно указать размеры:
C++
1
char str[3][8] = { "красный", "желтый", "зеленый" };
0
0 / 0 / 0
Регистрация: 29.04.2021
Сообщений: 7
20.07.2022, 12:41  [ТС]
ошибка остается все равно
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
20.07.2022, 12:58
Цитата Сообщение от zuzic Посмотреть сообщение
ошибка остается все равно
Та же или другая
0
 Аватар для qppq
145 / 89 / 23
Регистрация: 31.08.2016
Сообщений: 780
Записей в блоге: 2
21.07.2022, 08:08
у меня вот так не ругается

C++
1
const char* str[][8] = { {"красный"}, {"желтый"}, {"зеленый"} };
это получается массив указателей на каждую букву? или вовсе неверная запись
как из этого выцепать букву отдельно?
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
21.07.2022, 08:29
qppq, вот так вроде получил отдельно букву
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    const char* str[][8] = { {"red"}, {"yellow"}, {"green"} };
    std::cout << sizeof(str)/sizeof(str[0]);//Размер массива вроде показал
    std::cout << '\n' << (*str[1])[4];//пятая буква второго элемента
 
    return 0;
}
1
 Аватар для qppq
145 / 89 / 23
Регистрация: 31.08.2016
Сообщений: 780
Записей в блоге: 2
21.07.2022, 09:53
Цитата Сообщение от ram876 Посмотреть сообщение
std::cout << '\n' << (*str[1])[4];//пятая буква второго элемента
тут чтото не так, выводит левый символ если русс буквы, а если англ то нормально

Добавлено через 1 минуту
всего ячеек так получается

C++
1
std::cout << sizeof(str)/sizeof(str[0][0]);
Добавлено через 38 минут
Цитата Сообщение от qppq Посмотреть сообщение
тут чтото не так, выводит левый символ если русс буквы, а если англ то нормально
нужно верный сетлокейл
C++
1
setlocale(LC_ALL, "Rus");
итого

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
   const char* str[][8] = { {"красный"}, {"желтый"}, {"зеленый"}}; //здесь ошибка
        for (int i = 0; i < 3; i++)
            {
            cout << *str[i] << endl;
            }
           cout << sizeof(str)/sizeof(str[0]); // кол-во слов
           cout << '\n'<< sizeof(str)/sizeof(str[0][0]);//кол-во ячеек всего
            cout << '\n'<< (*str[0])[3] <<(*str[1])[1] << (*str[0])[1] << (*str[2])[5] << (*str[1])[5];
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.07.2022, 09:53
Помогаю со студенческими работами здесь

Ошибка: значение типа "const char *" нельзя использовать для инициализации сущности типа "char *" (строка 8)
#include &lt;iostream&gt; using namespace std; int main() { int number = 0; char *result; char *binary = &quot;1111&quot;; cin &gt;&gt;...

Значение типа "const char *" нельзя использовать для инициализации сущности типа "char *"
Значение типа &quot;const char *&quot; нельзя использовать для инициализации сущности типа &quot;char *&quot;, не совсем понимаю в чём проблема #include...

Ошибка: "const char[78]" нельзя использовать для инициализации сущности типа char[12]
class Goroskop { private: char name_Zodiak; public: char name_Zodiak = {&quot;Aries&quot; &quot;Taurus&quot; &quot;Gemini&quot; &quot;Cancer&quot; &quot;Leo&quot; &quot;Virgo&quot;...

Значение типа "const char *" нельзя использовать для инициализации сущности "char*"
Книга Пратта, Лекции и Упражнения. 750 страница, листинг 14.8. В объявлении производного класса, имеется вот такое: protected: enum...

Значение типа "const char *" нельзя использовать для инициализации сущности типа "LPCWSTR"
#include &lt;windows.h&gt; // підключення бібліотеки з функціями API #include &quot;resource.h&quot; // Глобальні змінні: HINSTANCE hInst;...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru