Нужно проверить на четность строку типа wchar_t и добавить в конце символ если она не четная. Но при работе выдает, что размерность буферного массива должна быть константой, задаю ее как константу, но все равно вылезает та же ошибка. Пример кода:
if (Message_Len % 2 != 0 )
{
const int Len = Message_Len+1;
wchar_t Buff[Len];
for(int k = 0;k < Len;k++)
Buff[k] = Message_Text[k];
Buff[Len] = Buff[Message_Len];
Buff[Message_Len] = '_';
for (int k = 0; k < Len; k++)
Message_Text[k]= Buff[k];
}
Если Message_Len
не является константным выражением, то во время выполнения обьект Len
может принимать разные значения, так как вы инициализровали: const int Len = Message_Len+1;
, т.е. значение зависит от значения другого. А создавать массив, чей размер не является константным выражением, в C++ невозможно. Другое дело, если константный обьект инициализировать константным выражением, например:
const int Len = 10; //или любым другим константным выражением
Иначе нужно создать динамический массив или пользоваться услугами какого то контейнера(стандартного или самописного).
P.S.
Если Message_Len
является размером массива некоторого строкового массива Message
, имеющий конкретный размер, то вы в любой момент можете инициализировать любой элемент символом конца строки '\0'
, тогда размер строки изменится. Константным выражением будет лишь размер занимаемой памяти, т.е. sizeof(Message)
, но никак не размер строки strlen(Message)
. То же самое касается любым другим типам.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
класс TreeNode наследуется от CalcTree, в классе CalcTree создается указатель на TreeNode => вызывается конструктор TreeNode, который рекурсивно вызывает конструктор...
Как с помощью функции GetPixel получить данные о пикселе файла изображения? Или как сделать хендл не к окну консоли, а к файлу?
Пожалуйста, помогите новичку понять в чем могут быть ошибкиДолго не могу разобраться