j'ai écrit un programme simple C++ pour illustrer mon problème:Python ctypes: initialisation c_char_p()
extern "C"{
int test(int, char*);
}
int test(int i, char* var){
if (i == 1){
strcpy(var,"hi");
}
return 1;
}
Je compilent cela en une sorte. De python j'appelle:
from ctypes import *
libso = CDLL("Debug/libctypesTest.so")
func = libso.test
func.res_type = c_int
for i in xrange(5):
charP = c_char_p('bye')
func(i,charP)
print charP.value
Quand je lance, ma sortie est:
bye
hi
hi
hi
hi
Je me attendais:
bye
hi
bye
bye
bye
Qu'est-ce que je manque?
Merci.
Merci, en le remplaçant par charP = create_string_buffer ("bye"), corrige mon problème. J'aurais dû mieux examiner les docs. – Mark