Infix Notation zu Postfix Notation

Hallo Leute,

ich hab ein kleines Problem mit meinem Programm:
Es soll eine eingegebene Infix Notation in eine Postfix Notation umwandeln. Bei einigen Ausdrücken macht er das auch, bei anderen wiederum nicht, da stürzt er einfach ab. Ich weiß echt nicht wo der Fehler liegt. Ich hoffe jemand hier kann mir weiterhelfen.

DANKE SCHONMAL!!!

#include 
#include 

using namespace std;

//testet die Priorität der Operanden
int priority(char e){
 int pri = 0;

 if(e == '\*' || e == '/' || e == '%'){
 pri = 2;
 }else{
 if(e == '+' || e == '-'){
 pri = 1;
 }
 }
 return pri;
}

int main(){
 cout charStack;

 char input[100];
 char output[100];
 char n1;

 char \*o;
 o = &output[0];

 cin \>\> input;

 int n = 0;
 while(input[n] != 0){

 if(isdigit(input[n]) || isalpha(input[n])){
 \*o = input[n];
 n++;
 o++;
 }

 if(input[n] == '('){
 charStack.push(input[n]);
 n++;
 }

 if(input[n] == ')'){
 n1 = charStack.top();
 charStack.pop();
 while(n1 != '('){
 \*o = n1;
 o++;
 n1 = charStack.top();
 charStack.pop();
 }
 n++;
 }

 if(input[n] == '+' || input[n] == '-' || input[n] == '\*' || input[n] == '/' || input[n] == '%'){
 if(charStack.empty() == true){
 charStack.push(input[n]);
 }else{
 n1 = charStack.top();
 charStack.pop();
 while(priority(n1) \>= priority(input[n])){
 \*o = n1;
 o++;
 n1 = charStack.top();
 charStack.pop();
 }
 charStack.push(n1);
 charStack.push(input[n]);
 }
 n++;
 }
 }
 while(!charStack.empty()){
 \*o = charStack.top();
 o++;
 charStack.pop();
 }
 \*o = '\0';

 cout 

Hallo,

wenn mehr als hundert Zeichen in „output“ hineingeschrieben werden,
kommt es früher oder später zum Absturz. Gleiches trifft auf „input“ zu.

Stattdessen kann man std::vector nehmen.
Mit push_back() läßt sich ein weiteres Zeichen anhängen,
der Vector wird automatisch verlängert, falls nötig.

Wenn nach dem Umbau der Fehler nicht weggeht, oder es eine Endlosschleife gibt, würd ich es mit Log-Ausgaben versuchen.
Jede Aktion ausgeben, und prüfen, ob es das Programm das tut, was du erwartest.

Viel Erfolg
Thorsten

hallo, danke schonmal für deine antwort =)

aber ich habe vergessen dabei zu sagen, das es als stack implementiert werden soll. daher kann ich leider kein std::vector nutzen