Deja bonjour

Voila je vous expose mon problem cela peut sembler bete mais je voudrais remplir un char ** dans une structure, le problem c'est que je ne connais pas la taille que va faire mon tableau de char**. je m'exprime peut etre tres mal voila mon example
voila mes tableau dans mon .h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
 
typedef struct s_mini
{
  int size_tab;
  char **tab_env;
  char **tab_play;
} t_mini;
et je souhaiterais donc remplire tab_env et tab_play de cette facon.

Voila ma fonction de remplissage pour tab_env.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
int             tab_env(char *str, t_mini *mini)
{
  static int   i = 0;
  char  *tabenv[mini->size_tab];
 
  mini->tab_env = malloc(sizeof(tabenv));
  mini->tab_env[i] = str;
  i++;
  return (0);
}
a savoir que size_tab est la taille de mon tableau qui n'est pas predefini mais peut varier en fonction de l'environement utiliser. je ne peut donc pas lui donner de valeur fix si non cela aurais etait plus simple pour ^^

et le problem c'est que lorsque je le test de cette facon avec un putstr ca me donne les bonnes valeurs..

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
int             tab_env(char *str, t_mini *mini)
{
  static int   i = 0;
  char  *tabenv[mini->size_tab];
 
  mini->tab_env = malloc(sizeof(tabenv));
  mini->tab_env[i] = str;
/* test avec un putstr*/
my_putstr(mini->tab_env[i]);
/* Fin du test*/
  i++;
  return (0);
}
cela me donne exactement la meme chose que si j'afficher le str..
hors si en dehors de ma fonction je rappel mini->tab_env[0], pour l'afficher cela segfault j'en conclus que cela ne remplis pas correctement mon tableau... j'ai pourtant chercher mais je vois pas d'autre solutions que de connaitre la taille en dur :/ hors cela est impossible ......

j'espere que je me suis exprimer asser clairement. je vous remerci par avance