如何在cython中返回指针指针?

时间:2015-10-16 16:21:05

标签: c++ pointers cython

我是cython的新手,我正在尝试包装一些C ++代码。对于诸如int之类的原始数据类型,我可以获得从C ++返回的值。但是,我无法将指针对象的指针返回到下面的2D数组(** double elev_data,** double mask_data):

.pyx文件:

from libcpp.string cimport string
import numpy as no
cimport numpy as np

cdef extern from "params.h":
        cdef cppclass params:
                params()
                int nrows
                int ncols
                double get_yllcorner()
                double get_xllcorner()
                double get_cellsize()
                string get_elev_filename()
                int nodata_value
                double **elev_data
                double **mask_data

def class PyParams:
        cdef params* thisptr # hold a C++ instance
        def __cinit__(self):
                self.thisptr = new params()
        def __dealloc__(self):
                del self.thisptr

        def get_nrows(self):
                return self.thisptr.nrows

        def get_ncols(self):
                return self.thisptr.ncols

        def get_yllcorner(self):
                return self.thisptr.get_yllcorner()

        def get_xllcorner(self):
                return self.thisptr.get_xllcorner()

        def get_cellsize(self):
                return self.thisptr.get_cellsize()

        def get_elev_filename(self):
                return self.thisptr.get_elev_filename()

        def get_nodata_value(self):
                return self.thisptr.nodata_value

我的问题是我可以返回双** elev_data和双** mask_data。任何建议将不胜感激!

0 个答案:

没有答案