Segmentation fault

di il
2 risposte

Segmentation fault

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...

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte