Bonjour

J'ai un petit souci dans un programme en C. Je veux passer un tableau à deux dimensions (char**) à une fonction qui lui alloue dynamiquement de la mémoire, mais lorsque j'essaie de lire dans ce tableau via une autre fonction, ou par le main, il me donne un erreur de segmentation.

A noté que je dois passer les tableaux aux fonctions par référence...

Voici le code :
Fichier du main

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
#include <stdio.h>
#include "fonctions.h"
#define TAILLEG 10
 
 
int main(){
	int i,j;
	char **tabJ1Bat;
 
	initTab(tabJ1Bat, TAILLEG);	
	//il semble que l'erreur vienne de l'appel à cette fonction   
	affTab(tabJ1Bat, TAILLEG);
 
	return 0;
}

Fichier des fonctions

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
#include <stdlib.h>
#include <stdio.h>
#define EAU '~'
 
void initTab(char **tab, int taille){
	int i,j;
	tab = (char**) calloc (taille,sizeof(char*));
	for(i=0;i<taille;i++)
	{
		tab[i]=(char*)calloc(taille,sizeof(char));
		for(j=0;j<taille;j++)
		{
			tab[i][j] = EAU;
		}
	}
}
 
void affTab(char **tab, int taille){
	int i,j;
	char car;
	for(i=0;i<taille;i++)
	{
		for(j=0;j<taille;j++)
		{
			car = tab[i][j];
			printf("%c",car);
		}
	}
}

Merci d'avance de votre aide!