C++ - 如何将一个大数组作为一个函数的输入

2 人关注

我有一个函数,它接收了几个大的多维浮点数组作为输入。结果,我使堆栈崩溃。

我是一个C/C++的初学者,所以如果这个问题很愚蠢,我将提前道歉。总之,在网上查了一下,这个问题并不特别新,一般的解决办法是把它作为一个全局变量或者使用向量(而不是数组)。

然而,这段C++代码的目的是作为一个共享库,从Python脚本中获取输入并返回(或修改)值(也是数组)。因此我认为不可能声明为全局(如果我错了请纠正我)。

那么,除了使用向量,还有其他方法吗?让我放弃使用C++向量的原因是Python中没有相应的数据类型。我正在使用 ctypes 在 Python 和 C++ 之间进行通信,如果这很重要的话。

1 个评论
那么传递一个指向数组的指针呢。另外,如果你与其他语言连接,向量可能不正确。(最好使用一个指针,然后用正确的跨度手动进行索引)。一般来说,如果你与一个lib的接口,其调用惯例是C,所以用extern "C "向量是不可能的。
python
c++
shared-libraries
ctypes
user8453362
发布于 2020-02-27
1 个回答
Andrey Semashev
Andrey Semashev
发布于 2020-02-27
已采纳
0 人赞同