从函数中填充向量

问题描述 投票:1回答:2

我想做这样的事情,但我不确定什么是最好的方式。我究竟做错了什么?我也试过将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;
    }
}
c++
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.