1- Tes allocations sont systématiquement fausses
	
	| 12
 3
 4
 5
 
 | 	double complex **matrice = malloc(dimension * sizeof(double complex *)); // il faut allouer dynamiquement pour accéder à toute la mémoire
	for (i = 0; i < dimension; i++)
	{
		matrice[i] = malloc(dimension * sizeof(double complex));
	} | 
 2- Lorsque je vois le code de boulangerOuvertLisse(), quelque chose m'interpelle :
	
	zgemm_ (&TRANSA, &TRANSB, &dimension, &dimension, &dimension, &alpha, &(fourier[0][0]), &dimension, &(blocs[0][0]), &dimension, &beta, &(matrice[0][0]), &dimension);
 Je ne connais pas la fonction zgemm_ () mais les arguments  &(fourier[0][0]), &(matrice[0][0]) et &(blocs[0][0]) m'intriguent : à partir de ces adresses, et compte tenu de la méthode d'allocation, il est impossible d'avoir accès à tous les éléments des tableaux mais seulement aux dimension éléments commençant aux adresses fourier[0], matrice[0] et blocs[0] (tous les éléments ne sont pas consécutifs en mémoire, ils sont consécutifs par blocs de dimension éléments)
						
					
Partager