Error EAccessViolation

Milperrimo
28 de Febrero del 2006
HOla, ojala alguien me pudiera ayudar, estoy haciendo un programa en c++ (aplicacion de consola msdos), donde tengo que ordenar por burbuja una lista con datos, a la hora de comparar en el if me salta un error de EAccesViolation in address...., no se como resolverlo porque la aplicacion se para alli y no continua, existe alguna otra forma de comparar componentes de un nodo? aki esta parte del codigo donde me marca el error:

struct nodo //esta es la Estructura para un nodo con los sig. elem.:
{
char cCodigo[5]; //Array para el campo codigo (alfanumerico)
char cNombre[10]; //Array para el campo nombre (alfabetico)
int iSaldo; //Saldo en $ (numerico)
int iPiezas; //Piezas en existencia (N) (numerico)
char cFecha[10]; //Array para el campo Fecha (dd/mm/aaaa)
nodo *pNext; //Apuntador para el siguiente nodo
};

//aqui kiero comparar con el numero de piezas (iPiezas) de cada nodo y ordenar por burbuja

void OrdenaBurbuja() //Funcion para ordenar con Burbuja
{
nodo *pTemp1,*pTemp2;
int iCompara;

if(pInicio == NULL)
cout<<"La lista esta vacia, Suerte para la proxima";
else
{
for(long l=0; l<lNumElems; l++)
for(pTemp1 = pInicio; pTemp1 != NULL; pTemp1 = pTemp1->pNext)
{
if(pTemp1->iPiezas > pTemp1->pNext->iPiezas) //en este if me marca el error.
{
pTemp2 = pTemp1;
pTemp1 = pTemp1->pNext;
pTemp1->pNext = pTemp2;
}
}
}
}//Fin de la funcion para ordenar con burbuja



GRACIAS Y ESPERO RESPUESTA LO MAS PRONTO POSIBLE