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)
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++不支持可变长度数组.