J'écris toujours sur une interface python pour mon code c avec des ctypes. Aujourd'hui, j'ai remplacé ma fonction de lecture de fichiers par une version python, qui a été programmée par quelqu'un d'autre sur NumPy. L'ancienne version de c était appelée avec un byref (p_data) alors que p_data = PFloat() (voir ci-dessous). La fonction principale prend le p_data.Comment utiliser la matrice NumPy avec des ctypes?
Old lecture du fichier:
p_data=POINTER(c_float)
foo.read(filename,byref(p_data))
result=foo.pymain(p_data)
La fonction de lecture de fichier python d'autre part retourne un tableau NumPy. Ma question est maintenant:
Comment convertir une matrice NumPy en POINTER (c_float)?
Je googlé mais seulement trouvé l'inverse: C arrays through ctypes accessed as NumPy arrays et des choses que je ne comprenais pas: C-Types Foreign Function Interface (numpy.ctypeslib)
[mise à jour] Correction d'une erreur dans le code exemple
Merci! C'était vraiment utile! –