gpt4 book ai didi

C++ to Go 使用 SWIG : How to pass C++ pointers to Go?

转载 作者:数据小太阳 更新时间:2023-10-29 03:29:39 26 4
gpt4 key购买 nike

<分区>

看下面的代码,我会解释

int* Camera::retrieveDataPointerPerBuffer() {
int cameraData [10] = {1,2,3,4,5,6,7,8,9,10};
int* pSrc = cameraData;
return cameraData;
} //camera.cpp

上面的代码有一个指向数组然后返回的int指针pSrc。这是C++中的一个函数。接下来,我使用 SWIG 从本质上包装这个 C++ 函数,以便我可以在 Go 中调用它。下面的代码演示了在 Go 中调用的函数。

func myCamera() {
cam := camera.NewCamera()
pSrc := cam.RetrieveDataPointerPerBuffer()

for i := 0; i < 10; i++ {
fmt.Println("%d", pSrc)
}
} //main.go

注意:我知道我不能在 Go 中迭代指针。但是有什么办法吗?

输出:0

问题:如何通过从 C++ 到 Go 的指针访问数组元素?附加信息:这是我正在处理的一个更大项目的简化版本。我必须返回这个指针,我不能返回一个 vector 。

如果您需要我为您澄清任何事情,请告诉我。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com