错误的返回指针c ++

时间:2014-01-20 12:04:20

标签: c++

我有一个问题...我在c ++中有一个返回双指针的函数:

double * Calc_ToF_low::CalcToF(int16_t* señal, int fs){


    double ToF_est [4]={0,0,0,0};
    ToF_est[0]=time_est(result2,fs);
    ToF_est[1]=ToF_est[0];
    ToF_est[2]=ToF_est[0];
    ToF_est[3]=ToF_est[0];


    return(ToF_est);

主要是:

double *ToF_est;
ToF_est=ToFobject.CalcToF(señal,fs);

当我这样做时:

cout<<ToF_est[0]<<endl;

没有相同的价值......为什么??

由于

1 个答案:

答案 0 :(得分:3)

您无法返回指向自动局部变量的指针。它调用未定义的行为。函数返回后,ToF_est不再存在 如果要返回指针,请使用动态分配(new)。

double *ToF_est = new double [4];