Tôi vẫn viết trên giao diện python cho mã c của tôi với ctypes. Hôm nay tôi thay thế chức năng đọc tập tin của tôi với một phiên bản python, được lập trình bởi một người khác sử dụng NumPy. Phiên bản 'cũ' c được gọi với một byref (p_data) trong khi p_data = PFloat() (xem bên dưới). Hàm main lấy p_data.Làm thế nào để sử dụng mảng NumPy với ctypes?
Cũ tập đọc:
p_data=POINTER(c_float)
foo.read(filename,byref(p_data))
result=foo.pymain(p_data)
Các python chức năng tập đọc trên Mặt khác trả về một mảng NumPy. Câu hỏi của tôi bây giờ là:
Làm cách nào để chuyển đổi mảng NumPy thành POINTER (c_float)?
Tôi googled nhưng chỉ tìm thấy những cách khác xung quanh: C arrays through ctypes accessed as NumPy arrays và điều tôi không hiểu: C-Types Foreign Function Interface (numpy.ctypeslib)
[cập nhật] sửa một lỗi trong mã ví dụ
Cảm ơn! Điều này thực sự hữu ích! –