Bonjour à tous,
je réalise un programme qui a pour but d'ouvrir des matrices stockées dans un fichier txt, puis d'effectuer des opérations sur ces dernières, entre autre l'addition et la transposition. Mon programme ressemble a ca :

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
int transposition(struct matrice *M, struct matrice *T)				
{
	T->m=M->n;
	T->n=M->m;
	T->v_ptr = (double *) malloc ((T->n)*(T->m)*sizeof(double));
	printf("Voici la matrice après transposition\n");
	for (int i=0;T->n;i++)											
		{
			for (int j=0;j<T->m;j++)
			{
				T->v_ptr[i*(T->m)+j]=M->v_ptr[j*(M->m)+i];
			}
		}
	return 0;
}
J'aurai pu renvoyer un struct matrice au lieu de prendre en argument deux matrices dont la structure est déjà définie mais l'objectif c'est de transposer M et de stocker cette transposée dans T !
Dans mon main j'appelle cette fonction de la manière suivante :

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
int main(int argc, char *argv[])
{	
	struct matrice M;
	struct matrice *T = malloc(sizeof(struct matrice));
	int test1 = lecture_fichier(&M,argv[1]);
	if (test1==1)
	{
		printf("Voici la matrice %s\n",argv[1]);
		afficher_mat(&M);
		transposition(&M,T);
		afficher_mat(T);
		free(M.v_ptr);
		free(T->v_ptr);
	}
 
	return 1;
 
}
Or il se trouve qu'après compilation puis execution, j'ai un message d'erreur " Segementation fault (core dumped) ".
Je sais que ceci a à voir avec l'allocation dynamique de mes matrices, mais je ne parviens pas à voir ce qui pose problème...

Merci de votre aide !!

Antdec