[C] malloc dans les structures - besoin d'un peu d'explication

Bonjour/soir

mon problème est que je veux créer une structure contenant plusieurs chaînes de caractères.

MAIS je veux les créer avec un malloc car je ne connais pas d’avance combien de structures je veux créer, ni combien de place chaque chaîne de chaque structure doit prendre de place

déjà avant d’exposer mon code, je voulais savoir quel était en gros la démarche à suivre… quand est ce que je dois faire les malloc, etc. ?

car je peux créer une structure avec un malloc par exemple, mais ensuite dans cette structure, c’est une structure de pointeur en fait (chaîne dont je ne connais même pas la taille), comment dois-je faire pour allouer la taille de chaque chaîne ? :jap:

Tu aurais du mettre ton code, ça nous aurait évité d’inventer un cas de figure :wink:

En gros si tu as une structure de ce genre:


struct uneStructure{
int nb;
char *chaine1;
char *chaine2;
};

Pour l’initialiser:




int main()
{
struct uneStructure *maStructure;
int taille1 = 10;
int taille2 = 35;
maStructure = (struct uneStructure *) malloc(sizeof(struct uneStructure));
maStructure->chaine1 = (char *) malloc(taille1 * sizeof(char));
maStructure->chaine2 = (char *) malloc(taille2 * sizeof(char));

...
}

voilà, tu obtiens un structure avec tes 2 chaines

(sans oublier de tester si maStructure ne vaut pas NULL, sinon plantage …)

Toutafé :slight_smile: