Problema con punteros

Problema con punteros
Tengo un problema, he hecho un ejercicio con punteros, la estructura es un
array de punteros a listas enlazadas, cada nodo de la lista tiene un
registro y un puntero al siguiente nodo, la practica esta casi entera hecha
solo que no ordena los nodos alfabéticamente me da un error de violación de
memoria o algo así, pasteo el subalgoritmo y los tipos:
A ver si m podéis ayudar
Gracias
Hasta pronto
//Tipos
const int MAX=10;
const int ENTER = '\n';
typedef char tcadena [MAX];
struct tdatos
{
tcadena nombre;
tcadena apellido;
int NSS;
int nomina;
};
struct nodolista
{
tdatos datos;
nodolista *sig;
};
typedef nodolista *tlista;
typedef tlista ttabla [MAX];
---
void ordenar (ttabla &t)
{
tlista ant, act, p;
int i;
for (i=0; i<MAX; i++)
{
if (t!=NULL)
ant = t;
act = t->sig;
p=NULL;
while (act != NULL)
{
if (comparag (ant->datos.nombre, act->datos.nombre))
{
intercambia (p, ant, act);
p=ant;
ant=act;
act=act->sig;
}
}
}
visualizar (t);
}
bool comparag (tcadena p, tcadena b) //da true si la primera cadena metida
como parametro
{ //es menor que la segunda
int i;
i=0;
while (i<MAX)
{
if (p==b)
{
i++;
}
else
{
return (p<b);
}
}
}
void intercambia (tlista &p, tlista &ant, tlista &act)
{
tlista aux;
aux = ant;
p->sig=act;
ant->sig = act->sig;
act->sig=ant;
}

2 Respuestas

Respuesta
1
Siempre cuando usas punteros, en la declaración de las funciones haces
tlista &p, tlista &ant, etc
y tienes que poner tlista *p, tlista *ant, etc
Porque son punteros a estructuras.
Respuesta
Creo que el problema no esta en la parte de código que me das, sino en la inicialización de todos los punteros, si el array de punteros no esta inicualizado correctamente puede producirse un error de ese tipo en la recorrida del mismo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas