如何将ctypes指针转换为ctypes数组而不复制数据。 (不是castarray到指针)

时间:2015-09-18 05:55:35

标签: python arrays pointers ctypes

我有一个python回调函数,它接受2个参数:一个指向一块内存的指针,以及内存块的长度。

def my_callback( buf, len):
    """ buf is of type POINTER(c_ubyte), len is of type c_uint"""

在回调函数中,我想首先将内存块转换为ctypes数组。我知道可以通过创建一个新的ctypes数组并复制内存块中的所有数据来完成它。

def my_callback( buf, len):
    """ buf is of type POINTER(c_ubyte), len is of type c_uint"""
    temp_array = (c_ubyte * len)(*[buf[n] for n in range(len)])

但通过这种方式需要内存复制。我的问题是,是否有任何方法可以在没有内存复制的情况下将ctypes指针强制转换为数组?

提前感谢您的任何答案或提示。

0 个答案:

没有答案