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

Fut*_*Jim 2 c++ memory arrays pointers

我试图了解使用这个的好处......

double *x = new double[n];
Run Code Online (Sandbox Code Playgroud)

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

double x[n];
Run Code Online (Sandbox Code Playgroud)

谢谢

#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;
}
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 5

强制性说明:

std::vector<double> x(n);
Run Code Online (Sandbox Code Playgroud)

打败你所拥有的.

实际答案:

好处是

double *x = new double[n];
Run Code Online (Sandbox Code Playgroud)

是合法的,而

double x[n];
Run Code Online (Sandbox Code Playgroud)

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

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