void TachQueue(queue<char> Q, queue<int> P1, queue<char> P2)
{
char *c;
c=newchar;
int i=0;
int a;
char x;
do{
x=Q.front();
if(!isalnum(x)) {a=atoi(c);P1.push(a);P2.push(x);c=NULL;} else
{
*(c+i)=x;
}
your creating c as a pointer to a char and then you do a=atoi(c)
without having anything in c
also *(c+i)=x;
just makes no sense at all i assume you wanted to deference c to get its value and add i to that value which is not whats being done.
your also probably going to want to pass your queues by reference.
also again in TachQueue you are using a do while loop which could be dangerous since you dont know if the queue is empty or not before the loop executes the first time.
and again in main the return should be 0 a return status of 1 usually indicates an error occurred.