Here is a problem that I noticed, I didn't have time to read the whole thing
respchar is a char that is a single charactor so you would need to use %c to print that char. When you use %s it's treated as a pointer to a char and since it's value likely isn't a vald pointer it will give a segmentation fault.Code:void saida(int respexec, int respint, char respchar) { if (respint==VOIDINT) printf ("x%d %s",respexec, respchar);