2014-10-13 3 views
-9

Меня попросили доказать, что можно задать длину массива в программе, и его не нужно определять во время компиляции. У меня есть следующий код:длина массива во время выполнения в 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 

Я не уверен, что правильный способ приблизиться к нему.

+5

Вы не можете доказать, что, поскольку размеры массива должны составлять константы времени компиляции. – chris

+1

Что на самом деле содержит 'x', когда вы говорите' myarray [x] '?!? –

+2

*** int x, myarray [x]; *** Даже если C++ имел массивы переменной длины. Вы понимаете, что x здесь не инициализируется. – drescherjm

ответ

1

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

Смежные вопросы