URL: https://linuxfr.org/forums/programmation-c--2/posts/structures Title: Structures... Authors: mansuetus Date: 2004年09月15日T11:06:05+02:00 Tags: Score: 0 Je suis tout newb en C, et j'aimerais comprendre comment marchent les satanées structures. rien ne vaut un bon exemple... --------------- début du code ---------------- struct structure { £spaces£ £/spaces£char * a; £spaces£ £/spaces£char * b; £spaces£ £/spaces£char * c; }; #include <stdio.h> struct structure *wazaa ( ) { £spaces£ £/spaces£struct structure *to_ret; £spaces£ £/spaces£to_ret->a = malloc (20*sizeof(char)); £spaces£ £/spaces£to_ret->a = "aaa"; £spaces£ £/spaces£to_ret->b = malloc (20*sizeof(char)); £spaces£ £/spaces£to_ret->b = "bbb"; £spaces£ £/spaces£to_ret->c = malloc (20*sizeof(char)); £spaces£ £/spaces£to_ret->c = "ccc"; £spaces£ £/spaces£return(to_ret); } int print_struct ( struct structure *aa ) { printf ("%s--%s--%s\n", aa->a, aa->b, aa->c); return (0); } int main (void) { £spaces£ £/spaces£struct structure *test; £spaces£ £/spaces£test->a = "a non initialise"; £spaces£ £/spaces£test->b = "b non initialise"; £spaces£ £/spaces£test->c = "c non initialise"; £spaces£ £/spaces£ £spaces£ £/spaces£print_struct ( test ); £spaces£ £/spaces£test = wazaa (); £spaces£ £/spaces£print_struct ( test ); return (0); } --------------- Fin du code ------------------- exécution : ---- a non initialise--b non initialise--c non initialise Erreur de segmentation ---- mon but est d'obtenir un PAS segfault, pour comprendre où et comment allouer de la mémoire aux structures contenant des pointeurs. (car j'ai un petit projet qui bloque dessus depuis 5 jours et ça commence à me les &&##@$$ menues. merci pour votre aide. (et même si mon projet ne se débloque pas grace à ce post, je me coucherai au moins moins con !)