Problema con punteros!! Ayuda por favor...
Publicado por BlackWolf (1 intervención) el 21/02/2007 22:49:08
Hola a todos, tengo el problema que me esta dando "violacion de acceso a memoria" cuando intento ejecutar mi programa, alguien seria tan amable de decirme exactamente que estoy haciendo mal y/o porque da el error.
El error se da al terminar la funcion, y es la siguiente:
Código:
void efectuarOperacion() {
char *pOper, *pNum1, *pNum2, *pResul;
int num1, num2, resul;
bool ok = true;
pOper = pilaOp->popPila();
pNum1 = pilaNum->popPila();
pNum2 = pilaNum->popPila();
// Conversion
num1 = atoi(pNum1);
num2 = atoi(pNum2);
resul = 0;
punteroClean(pResul);
// Efectuo Operacion
switch (getOperacion(pOper)) {
case 1: //Suma
resul = num2 + num1;
break;
case 2: //Resta
resul = num2 - num1;
break;
case 3: //Multiplicacion
resul = num2 * num1;
break;
case 4: //Division
if (num1 <= 0) {
cout << "\nERROR - DIVISION ENTRE 0";
ok = false;
} else {
resul = num2 / num1;
}
break;
}
if (ok) { // Meto en Pila
pResul = new char[255];
punteroClean(pResul);
itoa(resul, pResul, 10);
strcat(pResul,"$");
pilaNum->putPila(pResul);
delete(pResul);
}
} ***** AQUI DA EL ERROR
Gracias por la ayuda!!
Saludos
El error se da al terminar la funcion, y es la siguiente:
Código:
void efectuarOperacion() {
char *pOper, *pNum1, *pNum2, *pResul;
int num1, num2, resul;
bool ok = true;
pOper = pilaOp->popPila();
pNum1 = pilaNum->popPila();
pNum2 = pilaNum->popPila();
// Conversion
num1 = atoi(pNum1);
num2 = atoi(pNum2);
resul = 0;
punteroClean(pResul);
// Efectuo Operacion
switch (getOperacion(pOper)) {
case 1: //Suma
resul = num2 + num1;
break;
case 2: //Resta
resul = num2 - num1;
break;
case 3: //Multiplicacion
resul = num2 * num1;
break;
case 4: //Division
if (num1 <= 0) {
cout << "\nERROR - DIVISION ENTRE 0";
ok = false;
} else {
resul = num2 / num1;
}
break;
}
if (ok) { // Meto en Pila
pResul = new char[255];
punteroClean(pResul);
itoa(resul, pResul, 10);
strcat(pResul,"$");
pilaNum->putPila(pResul);
delete(pResul);
}
} ***** AQUI DA EL ERROR
Gracias por la ayuda!!
Saludos
Valora esta pregunta


0