Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Leito87
Сообщений: n/a
26.02.2012, 18:33     Проблема с константой! #1
Помогите додумать код,чтоб не было ошибки.
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2012, 18:33     Проблема с константой!
Посмотрите здесь:

C++ Инициализация объекта строго константой
C++ Как обычную переменную сделать константой
C++ Как в классе правильно объявить массив с константой в качестве размерности?
C++ Поясните ошибку, связанную с константой.
C++ Как обычную переменную на время сделать константой?
Массивы C++. Ошибка: M должна быть константой C++
Предупреждение: формат не является строковой константой, и не заданы аргументы форматирования C++
C++ Может ли значение метки case в операторе switch быть числовым отрезком, или только константой?
C++ Case с отрицательной константой
C++ Вызов не константной функции, изменяющей свойства класса, из константой . Возможно?
C++ Каким образом выделяется память при инициализации строковой константой указателя
C++ Определить массив, не указывая его размерность константой

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1478 / 1054 / 45
Регистрация: 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: строки, вектора и прочее.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,110
26.02.2012, 18:38     Проблема с константой! #3
Используй new/delete:
http://liveworkspace.org/code/b4fae3...b0c0fd1d6ee5bb

Извиняюсь, опоздал.
Yandex
Объявления
26.02.2012, 18:38     Проблема с константой!
Ответ Создать тему
Опции темы

Текущее время: 15:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru