Código
void primerAjuste(Tlista &lista, Tlista &memoria){ while(lista != NULL){ if(memoria->estado != 0 && lista->nro < memoria->nro){ lista->asignado = memoria->nro; memoria->estado = 0; lista = lista->sgte; while(memoria->anterior != NULL){ memoria = memoria->anterior; //regresamos al principio por //si hay bloques libres intermedios }//while }//if else{ memoria = memoria->sgte; //si proceso muy grande o bloque esta ocupado }//else }//while lista while(lista->anterior != NULL){ /*aqui me da error de violacion de direccion*/ lista = lista->anterior; /*intento regresar la lista al primer nodo*/ }//regresamos al principio a la lista /*porque si la dejo asi cuando intento verla*/ /*no se puede porque queda en el ultimo nodo*/ }