c结构到Python

时间:2015-04-07 13:51:50

标签: python c ctypes

我有以下c代码:

rx_data_t* readBuffer()
{
    rx_data_t buffer[512];

    results = doSomething()

    rx_data_t* newBuf = malloc(results.count());

    for(i=0;i<results.count();i++)
    {
        newBuf[i].receive_time = buffer[i].receive_time;
        newBuf[i].low = buffer[i].low;
        newBuf[i].high = buffer[i].high;
    }

    return newBuf;
}

我在Python(3.4)中使用ctypes来获取此函数的结果,

 class BufferResults(ctypes.Structure):
    """ creates a struct to match rx_data_t
    """

    _fields_ = [
        ('receive_time', ctypes.c_ulong),
        ('low', ctypes.c_ushort),
        ('high', ctypes.c_ushort)
    ]

self.lib.readBuffer.restype = ctypes.POINTER(BufferResults)

res = self.lib.readBuffer()

这是有效的,我得到了c结构的所有结果,但是如果我遍历res有数百个结果而不是我期待的那两个结果。

有什么我做错了或不做的事吗?

感谢。

0 个答案:

没有答案