c++ - 为什么我可以在C++中动态创建静态数组?

标签 c++ arrays dynamic-arrays

我只是在讲一些简单的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++。

之所以进行编译,是因为您使用的编译器提供的扩展超出了C++标准。您的编译器会警告您if you had enabled compiler warnings:

-Wall -Wextra -pedantic

关于c++ - 为什么我可以在C++中动态创建静态数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60747223/

相关文章:

C++ 转义字符和引用变量输出困惑

c++ - 强制 Eigen 在运行时检查矩阵维度

c++ - sizeof(*this) 和结构继承

delphi - 我需要在 Delphi 中完成记录数组吗?

c++ - 如何将 boost 正态分布存储为类(class)成员

c - 错误 : expression must be a modifiable l value

java - 创建 2 个随机整数数组

python - 如果大小增加,为什么 python 列表的位置没有改变?

python - 在 numba jitted 函数中动态增长数组

javascript - 在一次调用中推送 mongoose 中的数组列表