我必须将复杂数据从C++传递给C函数.在C++中,数据自然存储在一个
std::vector<std::complex> c.C函数期望数据为double的数组,double a[]例如a [0] = Re(c [0]),a [1] = Im(c [0]),a [2] = Re(c [1 ])等
传递此类数据的最佳安全方法是什么?像铸造一样
(double*) (&c[0])
Run Code Online (Sandbox Code Playgroud)
惹麻烦?
很抱歉,如果这是重复的,我只能找到有关将C++复合体传递给C99复合体的相关问题的信息.
假设我们正在使用Python并调用一些用C++编写的DLL库。我们在 Python 中打开一个非常大的数据集,然后我们想调用一个用 C++ 编写的库,并添加一个以打开的数据作为参数的数组。库会对该数组做一些事情,然后将它返回给 Python 代码。
所以问题是:是否可以使用内存的相同位置?因为在那种情况下,我们不需要将大量数据复制两次。