Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.09.2018
Сообщений: 1
1

Ошибка "значение типа "const char [81]" нельзя использовать для инициализации сущности типа "const unsigned char [61]"

24.09.2018, 21:34. Просмотров 966. Ответов 7

Прошу помощи, так как раньше прога работала, сейчас решил вернуться и выдает ошибку:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#pragma once
 
#include "consoleCover.h"
#include "symbols.h"
///////////////////////////////////
// game settings
const int rowsCount = 60;
const int columnsCount = 60;
 
 
const unsigned char levelData0[rowsCount][columnsCount + 1] = {
    "################################################################################",
    "#   # ##      o           s       #b b5#########################################",
    "# # o  #o############## ######### # # ##########################################",
    "# ###### #   # #3  s  # ##s##   # # # b#########################################",
    "#  s       # # #*#### # #s4s  #s# # ## #########################################",
    "###### # ### #      # # ##s##   #   b b#########################################",
    "##   # # # # #### # #   *## # # # #### #########################################",
    "#  #o  # # o    # ## ###  # #   # #b6#b#########################################",
    "########## ####         #   # # # ##bk #########################################",
    "#  2#    #      ####### # # #   #s###*##########################################",
    "# ### #### ######    o  # #   #   #   b#########################################",
    "# o        #      ####### ######## # # #########################################",
    "############ ######   #1# #s s#   ## #s#########################################",
    "#hk                 #   #   #   #b  b# #########################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
    "################################################################################",
 
};
она идет для каждой строки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2018, 21:34
Ответы с готовыми решениями:

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

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

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

Ошибка: значение типа "const char*" нельзя присвоить сущности типа "char*"
Появилось в 17 студии, как это исправить?

7
466 / 123 / 61
Регистрация: 04.03.2015
Сообщений: 325
25.09.2018, 01:07 2
Цитата Сообщение от CordisDieRise Посмотреть сообщение
выдает ошибку
Поменяйте
C++
1
const int columnsCount = 60;
на
C++
1
const int columnsCount = 80;
Или укоротите все строки на 20 символов.
0
С чаем беда...
Эксперт CЭксперт С++
7860 / 3790 / 1040
Регистрация: 18.10.2014
Сообщений: 8,046
25.09.2018, 03:24 3
Цитата Сообщение от CordisDieRise Посмотреть сообщение
Прошу помощи
Какой именно "помощи"? Строка из 81 символа никак не поместится в массив из 61 символа. Никакая "помощь" не поможет вам ее туда запихнуть.

Что вы пытаетесь сделать? Почему вы инициализируете массив размера 61 строкой размера 81?
0
8 / 7 / 0
Регистрация: 05.03.2017
Сообщений: 26
25.09.2018, 06:01 4
Обратите внимание на синтаксис!

C++
1
2
// инициализация двумерного массива:
int a[5][3] = { {4, 7, 8}, {9, 66, -1}, {5, -5, 0}, {3, -3, 30}, {1, 1, 1} };
Такие массивы лучше в куче создавать... Разве не?

И char - это символ, а не строка

C++
1
2
// посимвольная инициализация строки:
char string[10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'f', '\0'};
0
301 / 213 / 74
Регистрация: 23.05.2011
Сообщений: 970
25.09.2018, 12:49 5
Цитата Сообщение от MikHail19889 Посмотреть сообщение
Такие массивы лучше в куче создавать... Разве не?
It depends.
Если часто создавать и удалять, то на стеке будет быстрее, но переполнение стека получить проще.
0
8 / 7 / 0
Регистрация: 05.03.2017
Сообщений: 26
26.09.2018, 06:48 6
It depends.
Если часто создавать и удалять, то на стеке будет быстрее, но переполнение стека получить проще.
В курсе, я так тонко пытался намекнуть)
Ну даже массив char 60x60 - это 3600 байт. При том, что на пример VS выделяет на стек 1000 байт. У него уже перегрузка.
Я не знаю какой у него компилятор, но ходят легенды, что некоторые компиляторы выдают до 8000 байт на стек.

Так же непонятно инициализирует переменную columnsCount константой, а потом пытается прибавить +1
Ещё непонятно unsigned char - это вообще законно?

Не верю я, что код раньше работал. Темнит автор
0
13462 / 7127 / 1710
Регистрация: 30.01.2014
Сообщений: 11,899
26.09.2018, 08:19 7
Цитата Сообщение от MikHail19889 Посмотреть сообщение
При том, что например VS выделяет на стек 1000 байт
1000 байт - это чуть меньше 1 килобайта. Что-то вы путаете.

Стек в Windows выделяется по умолчанию в 1 мегабайт.
The reserve value specifies the total stack allocation in virtual memory. For ARM, x86 and x64 machines, the default stack size is 1 MB.
https://docs.microsoft.com/en-... 6(v=vs.120)
Может быть будем проверять информацию, прежде чем публиковать ее?

Цитата Сообщение от MikHail19889 Посмотреть сообщение
Так же непонятно инициализирует переменную columnsCount константой, а потом пытается прибавить +1
А что тут непонятного? Здесь результат выражения с константой времени компиляции также является константой времени компиляции. Это все более чем нормально.
0
8 / 7 / 0
Регистрация: 05.03.2017
Сообщений: 26
26.09.2018, 14:11 8
Да, конкретно попутал. Даже стыдно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2018, 14:11

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как исправить ошибку: Значение типа "const char *" нельзя присвоить сущности типа "char *"?
#include <conio.h> #include <iostream> using namespace std; struct Car_Specifications {...

Error: значение типа "const char" нельзя присвоить сущности типа "double"
#include <iostream> #include <iomanip>// using namespace std; void main(void) { const int...

Значение типа "const char" нельзя присвоить сущности типа "char*"
Добрый день. Разбираю классы и столкнулся вот с чем. В одной версии visual studio данный код...

Значение типа "void *" нельзя использовать для инициализации сущности типа "int *"
#include <pthread.h> #include <semaphore.h> #include <stdio.h> #include <Windows.h> ...


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

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

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