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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:
*** 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]