Quand tu appeles une fois la fonction insérer, 8 est plus grand que 0 (chez moi la valeur par défaut d'un x dans un noeud fraichement alloué).
Donc premier appel de insérer() avec x=8, il va rappeler insérer sur feuille->droite pour y insérer 8.
Donc deuxième appel de inserer(), ici n==NULL (puisque tu n'a pas alloué de place pour feuille->droite précédemment).
Donc le "feuille->x=x;" provoque une erreur de segmentation, puisque la place n'a pas été allouée pour ce pointeur de noeud.
Donc juste une petite correction:
if (n==NULL)
{
feuille=malloc(sizeof(noeud)); // A rajouter
feuille->x=x;
feuille->gauche=NULL;
feuille->droite=NULL;
}


