Salut,

Pour un programme, je cherche à faire une copie d'un tableau : TYPE**.
TYPE étant une structure que j'ai réaliser.

Bref j'ai créé un TYPE** echiquier avec les malloc necessaire et je voudrais faire une fonction qui copie echiquier et qui retourne cette copie.

J'ai deux possibilités : dois-je faire ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
TYPE** CopieEchiquier(TYPE** echiquier){
	TYPE** copie;
	copie = echiquier;
	return copie;
}
ou 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
16
17
18
19
20
21
22
23
TYPE** CopieEchiquier(TYPE** echiquier,int abscisse, int ordonnee){
	TYPE** copie;
	int i;
	int j;
        copie = (TYPE**)malloc(sizeof(TYPE*)*abscisse);
		if (copie== NULL){
			printf("Erreur d'allocation (colonnes)\n");
			exit(1);
		}
		for ( i = 1 ; i <= abscisse ; i++){
			copie[i] = (TYPE *)malloc(sizeof(TYPE)*ordonnee);
			if (copie[i] == NULL){
				printf("Erreur d'allocation (ligne %d)\n",i);
				exit(1);
			}
		}
        for ( i = 1 ; i <= abscisse ; i++){
		for ( j = 1 ; j <= ordonnee ; j++){
			copie[i][j] = echiquier[i][j];
		}
	}
	return copie;
}
J'opterais plutot pour le 2em mais la premiere technique serait vraiment plus courte et claire

Merci de votre aide