所以我想用三个函数创建一个可执行文件:
这是一个例子:
float vec(int opt, int t)
{
int i;
float * v = new float[t];
// Do stuff with v
return * v;
}
}
它从主要获取参数 opt 和 t 。然后主要需要返回 v 以在另一个函数中使用它。
最好的方法是什么?
答案 0 :(得分:2)
vec
的返回类型应为float *
,并且您的return语句应为return v
。使用v
取消引用*
只会为您提供数组的第一个元素。
我注意到这种设计风格很糟糕。它依赖于调用者来释放动态分配的数组。让调用者创建一个数组并通过引用vec
传递它,或让vec
静态返回一个不同的容器会更好。 @Mat建议std::vector
;这可能是一个不错的选择。
您在功能结束时还有一个额外的}
。摆脱它。
答案 1 :(得分:0)
好吧,你的签名说该函数返回一个float
,而不是一个浮点数组。直接回答你的问题......
float *vec(int t)
{
float * v = new float[t];
// Do stuff with v
return v;
}
这样做的最佳方式是什么?
这完全是一个不同的问题。最好的&#34;方法是返回std::vector<float>
并完全避免手动内存管理。