Bonjour,
Voila mon problème, je vais essayer d'etre clair.
Dans un fichier .pyl je dois Appeler une fonction MaFunc(c_double, liste_chainée)
j'ai donc fait ca:
Donc finalement mon probleme est que que je ne sais pas comment lui passer une liste chainée (en gros completer les ???), par exemple est ce que ca comme appel ca marchera :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class cell(Structure): pass cell._fields_=[("entier", c_double), ("next", POINTER(cell))] malib.mafuncC.argtype=[c_double, POINTER(cell)] malib.mafuncC.restype=c_double def MaFunc(Entier, ????(ma liste chainée) return malib.maFunC(Entier, liste chainée)
MaFunc(1.0, [1,2]) ????
parce que c'est ca le but de cette fonction de lui passer une liste chainée comme ctype
du coté du C:
De ce coté la est ce bon aussi ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 typedef struct cell{ double entier; struct cell *next; } cell; double maFuncC(double Entier, cell *cell)
En gros je voudrais faire un appel en Python MaFunc(2.0,[1.,2.,3.,7.])
qui prend comme parametre un double et une liste . Est ce que je m y prends bien ou y'a-t-il plus simple
J'ai fait quelques test c'est plus compliqué que je ne le pensais. Car si je cree comme ctype une liste chainée je suis obligé de l initialiser
Donc je remet a jour ma question: je veux faire en python MaFunc(2.0,[1.,2.,3.,7.]) ou le second argument est une liste de taille variable, comment je dois faire avec les ctypes pour qu'en C je recupere bien une liste
Pareil si j'ai besoin de MaFunc(2.0,[[a,b],[c,d]]) comment je fais pour le ctypes merci beaucoup
Merci d'avance de vos reponses
Partager