我有一个C++函数返回一个std::vector<float>.
我正在与一些C代码接口.
如何更改此C++函数以便它返回一些指向float数组的指针,如何保存此返回的数组以便我可以在我的C代码中使用它?
你可以得到一个指向同一个"原始"阵列std::vector::data或者&my_vector[0]如果C++ 11不可用.但是,如果向量操作强制向量调整大小,则原始存储将在内存中移动,并且此指针将不再安全使用.如果有任何这种情况发生的可能,您将需要分配不同的存储器(例如,通过创建的副本vector),并提供一个指针来代替.
更新:伍德罗的评论让我注意到你实际上是在从函数返回指针之后.您只能返回指向堆分配内存的指针,因此您不能使用本地vector(或任何其他类型的堆栈分配内存)来执行此操作.