c_types et les pointeurs de pointeurs
Bonjour à tous,
Ayant été très bien informé la précédente fois que j'ai demandé de l'aide ici, je reviens à nouveau à la charge.
On m'a donné la mission d'écrire un petit programme en python qui fait appel à des fonctions en C. Ne connaissant rien du tout au python je bute sur des bêtises et étant pressé par le temps, il me faut un coup de pouce :ccool:
Voici le code C:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
typedef struct
{
int cols;
int rows;
bool**dot;
} matrix;
int show(const matrix* data)
{
int i,j;
for( i = 0 ; i < data->rows ; i++ )
{
for ( j = 0 ; j < data->cols ; j++ )
{
if( data->dot[i][j] == true )
printf("true ");
else
printf("false ");
}
printf("\n");
}
return 1;
} |
Et le code Python correspondant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
from c_types import *
def myFunction(py_matrix):
class Matrix(Structure):
_fields_ = [("cols",c_int),
("rows",c_int),
("dot",POINTER(POINTER(c_bool)))]
c_matrix = Matrix()
c_matrix.cols = c_int(len(py_matrix))
c_matrix.rows = c_int(len(py_matrix[0]))
for i in range(c_matrix.rows):
for j in range(c_matrix.cols):
c_matrix.dot[i][j] = py_matrix[i][j]
return show(c_matrix) |
La ou ça pose soucis c'est à la ligne 17 dans le code python.
L'idée serait de pouvoir écrire en python
Code:
1 2 3
|
mat = [[0,1,1] , [0,0,1] ]
myFunction(mat) |
1 correspondant à vrai et 0 à faux (Non vous n'êtes pas idiot :oops: c'est le reglement qui dit d'être clair ^^).
Comment je peux me débrouiller pour copier ma matrice en python vers ma structure qui sera adéquat pour ma fonction C ?
Merci de vos réponses, et bon dev !