首页 > 解决方案 > 为什么我可以在 C++ 中动态创建静态数组?

问题描述

我只是在经历一些简单的 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;
    }

`

它不会给我一个错误。它不应该让我使用用户输入的大小创建一个静态数组吗?

标签: c++arraysdynamic-arrays

解决方案


你不能。这不是有效的 C++。

它可以编译是因为您使用的编译器提供了 C++ 标准之外的扩展。如果您启用了编译器警告,您的编译器会警告您:

-Wall -Wextra -pedantic

推荐阅读