Ich versuche, die Werte von einem Zeiger auf ein Float-Array zu erhalten, aber es gibt so c_void_p in PythonPython Doppelzeiger
Die C-Code
double v;
const void *data;
pa_stream_peek(s, &data, &length);
v = ((const float*) data)[length/sizeof(float) -1];
Python bisher
import ctypes
null_ptr = ctypes.c_void_p()
pa_stream_peek(stream, null_ptr, ctypes.c_ulong(length))
Das Problem, das die null_ptr ist, hat einen int-Wert (Speicheradresse?), Aber es gibt keine Möglichkeit, das Array zu lesen ?!
Prost, der in dem POINTER vorbei gearbeitet (c_float)() funktionierte perfekt .. Ich füge auch die Art Wrapper zu aktualisieren wie von pa_stream_peek.argtypes = [POINTER (pa_stream), Zeiger (ZEIGER (None)), Zeiger (c_size_t)] zu pa_stream_peek.argtypes = [POINTER (pa_stream), Zeiger (ZEIGER (c_float)), Zeiger (c_size_t) ] geben data = POINTER (c_float)() pa_stream_peek (Strom, Daten, ctypes.c_ulong (Länge)) v = Daten [0] – KillerKiwi