Как сделать так, чтобы выражение могло объявляться не константой?

Рейтинг: 0Ответов: 1Опубликовано: 26.02.2023

Как исправить ошибку "выражение должно иметь константное значение" в 14-ой строке? Visual Studio выдаёт эту ошибку, а онлайн компиллятор online-cpp без проблем проигрывает этот код:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
    int sum1;
    int sum;
    int n = 0;
    string p;
    cin >> p;

    char chars[p.length() + 1];
    p.copy(chars, p.length() + 1);
    cin >> sum >> sum1;
    for (n; n <= 17; n++) {
        if (n < 9) {
            cout << n + 1 << " | " << p[n] << endl;
        }
        else {
            cout << n + 1 << "| " << p[n] << endl;
        }
    }
    cout << "-----" << endl << sum1 << "/" << sum;
}

Ответы

▲ 2Принят

Выделять память динамически:

char * chars = new char[p.length() + 1];

Ну, а потом не забыть delete[] chars;