我試圖從一個指向一個int數組獲取值,但它在PythonPython的雙指針
C代碼
double v;
const void *data;
pa_stream_peek(s, &data, &length);
v = ((const float*) data)[length/sizeof(float) -1];
的Python迄今爲止
import ctypes
null_ptr = ctypes.c_void_p()
pa_stream_peek(stream, null_ptr, ctypes.c_ulong(length))
返回爲c_void_p
問題是null_ptr有一個int值(內存地址?),但沒有辦法讀取數組?
乾杯奏效傳遞指針(c_float)()完美地工作。我也增加了更新型的包裝像 從 pa_stream_peek.argtypes = [POINTER(pa_stream),POINTER(指針(無)),POINTER(c_size_t)] 到 pa_stream_peek.argtypes = [POINTER(pa_stream),POINTER(指針(c_float)),POINTER(c_size_t) ] 給予 data = POINTER(c_float)() pa_stream_peek(stream,data,ctypes.c_ulong(length)) v = data [0] – KillerKiwi 2009-05-06 20:09:41