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

Проблема с константой!

26.02.2012, 18:33. Просмотров 388. Ответов 2
Метки нет (Все метки)

Помогите додумать код,чтоб не было ошибки.
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
#include <iostream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i;
    int &pbr = i;
    char st[64];
    cin >> st;
    for(i = 0;i<64;i++)
    {
        if(st[i] == '\0')
        {
            pbr = i;
            break;
        }
    }
    const int br = pbr;
    cout << br;
    char str[br];                            //Вот здесь ошибка "Выражение должно иметь констаное значение"
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2012, 18:33
Ответы с готовыми решениями:

Case с отрицательной константой
switch (dir) { case 'С': case 'с': switch (cmd) { case '1': dir = 'З'; break;...

Инициализация объекта строго константой
Пишу class Class { private: const int *Int; public: Class(const int *b) { Int=b; } ...

Массивы, инициализация размера не константой
Здравствуйте. Только начал вливаться в Ваши стройные ряды ;) Вопроса два глупых (догадываюсь про...

Поясните ошибку, связанную с константой.
Делаю в VS 2012 #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main(...

Ошибка в static_assert: выражение не определяется константой
template&lt;class T&gt; int fff(T v) { static_assert(typeid(T) == typeid(double), &quot;not accepted...

2
DU
1486 / 1132 / 164
Регистрация: 05.12.2011
Сообщений: 2,279
26.02.2012, 18:37 2
там должна быть константа времени компиляции. т.е. либо явно написанное число вроде 10, 32 и т.п. либо гдето определенная константа.
в вашем случае массив нужно создавать динамически. т.к. так:
C++
1
2
3
char* str = new char[bf];
....
delete[] str; // нужно будет не забыть удалить выделенный массив.
А еще лучше пользоваться готовыми типами из stl: строки, вектора и прочее.
1
dimcoder
Полярный
467 / 440 / 157
Регистрация: 11.09.2011
Сообщений: 1,142
26.02.2012, 18:38 3
Используй new/delete:
http://liveworkspace.org/code/b4fae3da574f26ad8eb0c0fd1d6ee5bb

Извиняюсь, опоздал.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2012, 18:38

Как обычную переменную сделать константой
Как можно константой сделать обычную переменную, а то хочу создать матрицу nxn а мне VS требует что...

Массивы C++. Ошибка: M должна быть константой
Пытаюсь сделать массив, вот что вышло. Выбивает ошибку, что M должна быть константой (15 строка)....

Как обычную переменную на время сделать константой?
Как обычную переменную на время сделать константой?


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

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

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