Si tu ne veux récupérer qu'un seul caractère il faut utiliser seulement un char et non un char*
Après si tu veux utiliser un char* il faut que tu déclares un tableau de ... 2 cases
La première case contiendra ton caractère et la deuxième contiendra le '\0', alors que si tu crées seulement un tableau d'une seule case ton tableau ne contiendra que "\0" (dans ton cas c'est incorrect il aurais soit fallu utiliser le formateur %s, ou soit entrer directement le caractère souhaité : scanf ("%c", &c[0]))
Dans ta fonction initialiser tu pourrais initialiser tableauPile aussi
Mais le problème de ta fonction initialiser c'est que tu n'envoies pas un pointeur, et donc tu ne modifies la valeur de taille que dans ta fonction initialiser, dans ta fonction main elle reste inchangée.
Pour faire simple tu peux tout simplement utiliser memset
memset(&maPile, 0, sizeof(maPile));
Ta fonction empiler et afficherPile sont incorrectes, parce que tu commences ton indice à 1 (un tableau commence à l'indice 0) et ton tableau ne contient qu'une seule case, donc tu fais un beau dépassement de mémoire
Bon courage
Partager