[Python] ctypes e puntatore ad un array di stringhe
Marco Giusti
marco.giusti a posteo.de
Mar 18 Nov 2014 15:33:10 CET
Salve a tutti,
con ctypes vorrei richiamare una funzione C che ritorna **char. La
funzione in causa assegna la memoria per le singole stringhe e per
l'array stesso e lascia al chiamante l'onere di liberarla. Sebbene con
ctypes riesca ad accedere ai singoli valori, non riesco ad accedere
all'area di memoria puntate e di conseguenza non riesco a liberarla.
Questo è quanto ho fatto fino ad ora:
def getlist():
envs = _mylib.getlist()
ret = []
i = 0
env = envs[i]
while env is not None:
ret.append(env)
i += 1
env = envs[i]
# in realta' non sono sicuro di questa riga
_free(envs)
return ret
Ho provato con ctypes.addressof, ma non sono riuscito a risolvere.
Domanda correlata, come posso effettuare il debug della memoria? Quali
strumenti usare? Quello che mi sarebbe veramente utile è poter
utilizzare gdb, ma non credo che sia possibile.
Grazie,
m.
Maggiori informazioni sulla lista
Python