Problème de pointeurs et de structures
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:
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
} |