Почему я могу создать массив stati c динамически в c ++? - PullRequest
1 голос
/ 18 марта 2020

Я просто изучал некоторые простые концепции C ++. Мне нравится думать, что я знаю о разнице между динамическими c и массивами stati c. Но когда я запускаю следующий код:

`

#include <iostream>
using namespace std;
int main()
{
    int size;
    cout<<"enter size: ";
    cin>>size;
    int arr[size];
    cout<<"enter array values: ";
    for(int i=0;i<size;i++)
        cin>>arr[i];
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    return 0;
    }

`

Это не дает мне ошибку. Это не должно позволить мне создать массив stati c с размером, введенным пользователем, верно?

1 Ответ

5 голосов
/ 18 марта 2020

Вы не можете. Это недопустимо C ++.

. Компилируется, потому что используемый вами компилятор предлагает расширения, выходящие за рамки стандарта C ++. Ваш компилятор предупредил бы вас об этом , если бы вы включили предупреждения компилятора :

-Wall -Wextra -pedantic
...