Ho un problema con questo programma mi ritorna segmentation fault. io dovrei prendere da input dei parametri che sono numeri e segni ( 1 * 2 + 4 +5) ecc. e in fine dare il risultato dell'espressione considerando prima le moltiplicazioni poi le addizioni. ogni volta che eseguo un operazione salvo il risultato nella prima posizione e tralascio la altre(dove erano segno e numero) passando a quelle dopo.
int main(int argc, char **argv){
int risultato;
int tmp1, tmp2;
int i, j;
for (i=1; i<argc ; i++) {
if (argv[i] == "*" ){
tmp1=atoi(argv[i-1]);
tmp2=atoi(argv[i+1]);
argv[i-1] = ("%s tmp1 * tmp2");
for (j=i; j<argc; j++){
if (j == argc-2){
argc=j;
}else argv[j] = argv[j+2];
}
}
if (argv[i] == "/" ){
tmp1=atoi(argv[i-1]);
tmp2=atoi(argv[i+1]);
argv[i-1] = ("%s tmp1 * tmp2");
for (j=i; j<argc; j++){
if (j == argc-2){
argc=j;
}else argv[j] = argv[j+2];
}
}
}
for (i=1; 1<argc; ++i){
if (argv[i] == "+" ){
tmp1=atoi(argv[i-1]);
tmp2=atoi(argv[i+1]);
argv[i-1] = ("%s tmp1 * tmp2");
for (j=i; j<argc; j++){
if (j == argc-2){
argc=j;
}else argv[j] = argv[j+2];
}
}
if (argv[i] == "-" ){
tmp1=atoi(argv[i-1]);
tmp2=atoi(argv[i+1]);
argv[i-1] = ("%s tmp1 * tmp2");
for (j=i; j<argc; j++){
if (j == argc-2){
argc=i;
}else argv[j] = argv[j+2];
}
}
}
risultato =atoi(argv[1]);
return risultato;
}
Non riesco a capire dove sia l'errore...