<分区>
看下面的代码,我会解释
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 。
如果您需要我为您澄清任何事情,请告诉我。