我想做这样的事情,但我不确定什么是最好的方式。我究竟做错了什么?我也试过将double v []改为double * v
#include <iostream>
#include <random>
using namespace std;
void PopulateVector(double v[])
{
delete v;
v = new double[5];
v[0] = 1;
v[1] = 1;
v[2] = 1;
v[3] = 1;
v[4] = 2;
}
int main()
{
double *test = new double[1];
PopulateVector(test);
for (int i = 0; i < 5; i++)
{
cout << test[i] << endl;
}
}
基于好评。我做了一些修改。这个版本有效但我仍然希望void PopulateVector(double * v)或PopulateVector(double v [])工作。
#include <iostream>
#include <random>
using namespace std;
double* PopulateVector()
{
double *v = new double[5];
v[0] = 1;
v[1] = 1;
v[2] = 1;
v[3] = 1;
v[4] = 2;
return v;
}
int main()
{
double *test = new double[1];
delete[]test; // Do I need this?
test = PopulateVector();
double *test2 = new double[1];
test2 = PopulateVector();
for (int i = 0; i < 5; i++)
{
cout << test[i] << endl;
}
}