Bonsoir,
Voilà je cherche à créer un tableau à deux dimensions dynamiquement dans un projet. Jusqu'à maintenant je déclarait le pointeur dans ma fonction et j'allouais normalement sans trop de problèmes. Or dans ce cas là, je souhaite avoir une fonction qui prend en paramètre un pointeur char*** tab et l'alloue dynamiquement suivant ce que je veux.
J'ai donc fait un petit programme simple pour tester, et malheureusement ça ne fonctionne pas du tout et je ne comprends pas pourquoi...
Pour l'instant ça segfault à partir des allocations dans le for, la deuxième je crois bien).
Voilà mon code :
Merci à vous.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <getopt.h> int parsage_options(char*** liste_rep_fic) { int i = 0; if ((*liste_rep_fic = (char**) malloc(sizeof(char**) * 5))) { for (; i < 5; i++) { if ((*liste_rep_fic[i] = (char*) malloc(sizeof(char*) * 5))) { fprintf(stderr, "%p\n", *liste_rep_fic[i]); *liste_rep_fic[i][i] = 'a'; } } } return 1; } int main(void) { char** liste_rep_fic = NULL; int i = 0; int j = 0; parsage_options(&liste_rep_fic); fprintf(stderr, "%p\n", liste_rep_fic); for (; i < 5; i++) { for (; j < 5; j++) { printf("%c\n", liste_rep_fic[i][j]); } } return 0; }
Bye.
Partager