длина массива во время выполнения в C++

Меня попросили доказать, что длину массива можно задать в программе, и ее не нужно определять во время компиляции. У меня есть следующий код:

#include<iostream>
using namespace std;
int main()
{
    int x, myarray[x];
    cout << "Enter the size of array" << endl;
    cin >> x;
        }

Но при компиляции получаю следующие ошибки:

error C2057: expected constant expression
 error C2466: cannot allocate an array of constant size 0
 error C2133: 'myarray' : unknown size

Я не уверен, как правильно подойти к этому.


person user3922546    schedule 13.10.2014    source источник
comment
Вы не можете доказать это, потому что размеры массивов должны быть константами времени компиляции.   -  person chris    schedule 13.10.2014
comment
Что на самом деле содержит x, когда вы говорите myarray[x]?!?   -  person πάντα ῥεῖ    schedule 13.10.2014
comment
int x, myarray[x]; Даже если в C++ есть массивы переменной длины. Вы понимаете, что x здесь не инициализирован.   -  person drescherjm    schedule 13.10.2014


Ответы (1)


целая матрица[x]; я не думаю, что С++ не поддерживает такое объявление. используйте оператор new[], если вы хотите динамически выделять память для массива

person Abhijith P Haridas    schedule 13.10.2014