Passe str como uma matriz int para uma função estendida do Python C (estendida usando SWIG)
Como posso passar umstr
valor (contendo 3000 {'0', '1'} bytes) obtido usando o código python como argumento para uma função estendida python c (estendida usando SWIG) que requerint *
(comprimento fixo int array) como argumento de entrada? Meu código é o seguinte:
int *exposekey(int *bits) {
int a[1000];
for (int j=2000; j < 3000; j++) {
a[j - 2000] = bits[j];
}
return a;
}
O que eu tentei foi usarctypes
(veja o código abaixo):
import ctypes
ldpc = ctypes.cdll.LoadLibrary('./_ldpc.so')
arr = (ctypes.c_int * 3072)(<mentioned below>)
ldpc.exposekey(arr)
com 3072 {0, 1} inserido na posição. Python retorna erro de sintaxe: mais de 255 argumentos. Isso ainda não me ajuda a passar o valor atribuído str, em vez do valor inicializadoctypes
matriz int.
Outra sugestão incluiu o uso de mapas de tipo SWIG, mas como isso funcionaria para converter um str emint *
? Desde já, obrigado.