Python Erreur mémoire en utilisant Ctypes.
Bonjour.
J'ai une classe qui appelle une fonction de ma librairie C perso. Tout se passe bien et au moment de quitter le script, Python plante :/
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
|
# -*- coding: utf8 -*-
from ctypes import cdll, create_string_buffer, c_int, POINTER
class matrice2d:
def __init__(self,size):
self.buff1 = create_string_buffer((size*size)+size*2)
self.buff2 = create_string_buffer((size*size)+size*2)
self.size = c_int(size)
self.ZeLib = cdll.LoadLibrary("ZeLib.so")
self.initMatC = self.ZeLib.initMat
self.initMatC.argtype = (POINTER(c_int),c_int)
self.initMatC.restype = None
def initMat(self):
self.initMatC(self.buff1,self.size)
if __name__ == "__main__":
mat1 = matrice2d(128)
mat1.initMat() |
Voici le fichier de la librairie:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
#include <stdlib.h>
#include <stdio.h>
initMat(int *buff1, int size)
{
int i=0;
srand(time(NULL));
for(i = size; i < ((size*size)-size)+1;i++)
{
buff1[i] = rand() % 2;
}
} |
Et la sortie console:
Citation:
*** Error in `python': free(): invalid next size (normal): 0x0000000001af2db0 ***
Abandon (core dumped)
Faut il que je change de hobby ? Car la les amis c'est WTF!? pour moi ...
Merci d'avance.
Sofian.
[EDIT]
Comme ça au piff(il reste que ça) je dirais que je devrais désallouer quelque chose, quelque part avant de quitter comme un sagouin ... :)
[/EDIT]