Here is a problem that I noticed, I didn't have time to read the whole thing
Code:
void saida(int respexec, int respint, char respchar)
{
   if (respint==VOIDINT)
      printf ("x%d  %s",respexec, respchar);
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.