c++ - 使用指针对数组进行动态内存分配的好处

标签 c++ arrays memory pointers

我正在尝试了解使用此功能的好处...

double *x = new double[n];

而不是仅仅使用这个...

double x[n];

谢谢

#include <iostream>

using namespace std;

main()
{
    int n;
    cout<<"# of elements in array"<<endl;
    cin>>n;

    double *x = new double[n]; //or double x[n]

    int i;

    for(i=0;i<n;i++)
    {
        cout<<x[i]<<endl;
    }
    return 0;
}

最佳答案

强制性说明:

std::vector<double> x(n);

胜过你那里的东西。

实际答案:

这样做的好处是

double *x = new double[n];

是合法的,而

double x[n];

不是,除非 n 是编译时常量(在您的情况下,它不是)。

C++ 不支持可变长度数组。

关于c++ - 使用指针对数组进行动态内存分配的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12844100/

相关文章:

c++ - Boost Graph 通过 vertex_descriptor 访问属性

c++ - 函数需要访问另一个函数中的变量

python - 如何根据内容从 numpy 数组中提取行?

java - 如何处理可能是也可能不是数组、可能是也可能不是基元数组的 Java 对象

c++ - 如何在 C++ 中向量化 for 循环?

c++ - 在需要之前避免初始化成员

memory - 内核虚拟内存空间和进程虚拟内存空间

c++ - 一个变量中的 2 个值(const 和 const_cast)c++

sql - PostgreSQL 第二个查询基于第一个查询的数组类型结果。即用数组链接查询

C++ 预处理器意外编译错误