Bonjour,

J'ai une méthode assez courte dans laquelle j'alloue dynamiquement de la mémoire pour le pointeur nommé dataArray :

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
 
int geometry::updateDynamicData(int current_key)
{
	MMatrix *matricesArray = new MMatrix[mMotionKeys];
	AtArray *dataArray;
	dataArray = new AtArray;
	dataArray = nodeGetArray(handle, "matrix");
	if (dataArray->data != NULL)
		matricesArray = (MMatrix*)dataArray->data;
 
	int offset = current_key-1;
 
	AtMatrix tmp;
	MMatrix matrix(mDagPath.inclusiveMatrix());
	matrix.get(tmp);
	matricesArray[offset] = tmp;
 
	setMatrixArray("matrix", &matricesArray, 1, mMotionKeys, false);
 
	delete dataArray;
	delete [] matricesArray;
}
Quand je laisse le delete en fin de bloc, ça me fait planter mon prgramme.
Si je l'enlève, c'est OK, même si je suppose ça provoque quelques fuites de mémoire...