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).
Mon soucis se trouve ici
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; }
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.
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");
Mais ce ne fut pas le cas....
Partager