la joie des pointeurs de pointeurs
tu as qq confusions entre nodes, pointeurs sur nodes, et pointeurs sur tableaux de pointeurs sur nodes. c'est la joie du C.
ligne 9 tu fais ça :
node* sortie = (node*) malloc (sizeof(node*));
alors que ce que tu voudrais vraiment faire, c'est plutôt :
node* sortie = (node*) malloc (sizeof(node));
parce que tu veux que malloc alloue la taille nécessaire pour stocker une structure node complète, et pas seulement un pointeur vers cette structure.
lorsque tu fais sortie->tabFils[0] = creerNULL_node();
à ce stade, sortie->tabFils est un pointeur non initialisé, donc accéder au premier élément de ce tableau est très dangereux, tu dois d'abord "allouer un tableau de pointeurs", via un autre appel à malloc.
enfin, même si ce n'est pas relié à tes problèmes, cette façon de gérer un arbre à fils multiples n'est pas idéale, parce qu'elle est très ennuyeuse à maintenir, et coûte beaucoup d'allocations mémoires. une autre façon de faire, que perso je trouve plus simple, c'est de faire en sorte qu'une node parente ne contienne qu'un pointeur vers le premier de ses fils, et faire en sorte que chaque node contienne un pointeur vers un node "frère".