pourquoi ma matrice n'est pas allouer après ma fonction "identite" ?
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
25
26
27
28
29
30
31
32
33
34
35
36
37
 
#include <stdio.h>
#include <stdlib.h>
 
void printMat(int **mat, int n, int m);
void identite(int **mat, int n);
 
int main(void)
{
	int **mat = NULL;
	identite(mat, 5);
	if(mat==NULL) printf("null\n");
	else printMat(mat, 5, 5);
 
	return 0;
}
 
void identite(int **mat, int n)
{
	int i,j;
	if((mat=(int**)malloc(n*sizeof(int*)))==NULL)exit(1);
	for(i=0;i<n;i++)
		if((mat[i]=(int*)calloc(n,sizeof(int)))==NULL)exit(2);
	for(i=0;i<n;i++)
		mat[i][i]=1;
}
 
void printMat(int **mat, int n, int m)
{
	int i, j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
			printf("%2d ",mat[i][j]);
		printf("\n");
	}
}