Bonjour,

J'ai fait un tableau 2d de caractères avec un nombre de colonne qui varie (ligne 0= 2 colonnes; ligne 1 = 4 colonnes, ligne2= 3colonnes et ligne4 = 6 colonnes).
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
#include <stdio.h>
#include <stdlib.h> 
 
int main(void) {
 
  int ligne = 4; 
  int col[4] = {2,4,3,6}; 
 
  char ***tableau=NULL;
  tableau =  malloc(ligne * sizeof tableau);
  for(int i =0; i < ligne; i++)
    {
      tableau[i]= malloc(col[i]*sizeof tableau[i]);
      for(int j=0; j<col[i];j++)
      {
      tableau[i][j] = malloc(3 * sizeof *tableau[i][j]);  
      sprintf(tableau[i][j],"Aaaaaaaaaaaaaaaaaaaa");
      printf("%d %d %s \n",i,j,tableau[i][j]);
      }
    }
  return 0;
}
Mon soucis se trouve ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
tableau[i][j] = malloc(3 * sizeof *tableau[i][j]);  
sprintf(tableau[i][j],"Aaaaaaaaaaaaaaaaaaaa");
Je pensais que le "3" représentait le nombre de caractères et donc dès que j'allais dépasser 3 caractères (ou 2 + \0), le programme allait planter.
Mais ce ne fut pas le cas....