Bonjour,
J'ai une souci avec mon code, je suis débutant et j'essaie de m'entraîner un peu sur les structures et pointeurs. J'essaie de faire une fonction qui alloue une structure dynamiquement, puis une autre qui alloue chacun de ces paramètres dynamiquement. J'y arrive en faisant passer un pointeur sur ma structure à ma deuxième fonction, mais pas en lui passant des pointeurs sur les paramètres de cette dite structure, j'aimerais comprendre pourquoi ... :
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 #include <stdio.h> #include <stdlib.h> typedef struct mot mot; struct mot { char* text; int* longueur; }; void choisirMot(char* text, int* longueur); mot* creerMot(); int main() { mot* motMystere = NULL; motMystere = creerMot(); return 0; } mot* creerMot() { mot* motCree = NULL; motCree = calloc(1, sizeof(mot)); if(motCree == NULL){exit(3);} motCree->longueur = NULL; motCree->text = NULL; printf("Adresse text : %i\n", motCree->text); // J'ai ici NULL printf("Adresse longueur : %i\n", motCree->longueur); // J'ai ici NULL choisirMot(motCree->text, motCree->longueur); printf("Adresse text : %i\n", motCree->text); // J'ai ici NULL !!! printf("Adresse longueur : %i\n", motCree->longueur); // J'ai ici NULL !!! return motCree; } void choisirMot(char* text, int* longueur) { int l = 5; char* t = "corde"; int i = 0; text = calloc(l, sizeof(char)); if(text == NULL){exit(0);} printf("Adresse text : %i\n", text); // J'ai ici une adresse longueur = calloc(1, sizeof(int)); if(longueur == NULL){exit(1);} printf("Adresse longueur : %i\n", longueur); // J'ai ici une adresse }
Partager