2015-07-02 2 views
-1

Почему это невозможно создать массив символов таким образом?Создайте строку, которая будет использовать предыдущее целое число как размер

int main() 
{ 
    int len; 

    cin>>len; 
    char input_str[len]; 

    cin>>input_str; 
    cout<<input_str; 


    return 0; 
} 
+1

Можете ли вы поделиться с нами ошибкой? –

+0

Дикая догадка, может быть, len должен быть const int? – Ediac

+0

C добавил эту функцию; C++ не рекомендовал и использовал STL-шаблоны, такие как 'std :: string'. – MicroVirus

ответ

0

Вы не можете использовать статический массив, не зная размера массива во время выполнения. Вместо этого вы можете использовать указатель и использовать либо «таНос» или «новый», чтобы выделить память для массива динамически:

1) Прежде всего, проверьте, что пользователь ввел действительный INT

2) После того, как у вас есть действительный ИНТ для работы, вы можете использовать ...

char *input_str = new char[len];

для C++, или если вы должны придерживаться простого старого использования C ...

char *input_str = (char *)malloc(len * sizeof(char));