C/Visual C - COLAS -AYUDA PORFA

 
Vista:

COLAS -AYUDA PORFA

Publicado por Mónica (3 intervenciones) el 29/10/2009 14:35:21
Buenas tardes a tod@s, tengo un problemilla y no en que me estoy equivocando. Necesitaría un empujón para poder seguir con todo lo demás.

Tengo en el fichero "colas.h" las siguientes estructuras:
======================================================
//Estructura para los nodos de la cola.
struct NodoCola {
int iDato; //Dato almacenado
struct NodoCola *Anterior; //Apunta al nodo anterior
struct NodoCola *Siguiente; //Apunta al nodo siguiente
};
typedef struct NodoCola TNodoCola, *PNodoCola;

//Estructura para apuntar al primer, actual y último nodo de la cola
struct Cola {
int Longitud; //Guarda el número de elementos de la cola
struct NodoCola *Primero; //Primer nodo de la cola
struct NodoCola *Actual; //Nodo Actual de la cola
struct NodoCola *Ultimo; //Último nodo de la cola
};
typedef struct Cola TCola, *PCola;

//Funciones de la cola
void inicializa(PCola cola); //Inicializa la cola
int inserta(PCola cola, int t); //Inserta un nodo en la cola
int extrae(PCola cola); //Extrae un nodo de la cola
int tamano(PCola cola); //Devuelve el tamaño de la cola
void copia(PCola destino, PCola origen); //Copia una cola en otra
void destruye(PCola cola); //Elimina todos los nodos de la cola
int examina(PCola cola); //Devuelve el valor del nodo actual
int inicio(PCola cola); //Coloca el iterador al inicio de la cola
int fin(PCola cola); //Coloca el iterador al final de la cola
int avanza(PCola cola); //Avanza al siguiente nodo de la cola
int retrocede(PCola cola); //Retrocede al nodo anterior de la cola

Y en el fichero "colas.c"
=====================================
void inicializa(PCola cola)
{
cola = (PCola)malloc(sizeof(TCola));
cola->Primero = NULL;
cola->Actual = NULL;
cola->Ultimo = NULL;
cola->Longitud = 0;
}

int tamano(PCola cola){
return cola->Longitud;
}

En el programa de pruebas pongo:
=======================================
TCola cola;

inicializa(&cola); /* cola=[] */
printf("Longitud de la cola: %d\n", tamano(&cola));

Resulta que me devuelve como tamaño todo menos el 0 que debería tener. ¿En que me estoy equivocando? ¿No me está grabando los cambios hechos en cola??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:COLAS -AYUDA PORFA

Publicado por Tom (619 intervenciones) el 10/11/2009 11:29:11
¿?

/tmp$ make kk
cc kk.c -o kk
/tmp$ ./kk
Longitud de la cola: 0
/tmp$
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COLAS -AYUDA PORFA

Publicado por Monica (3 intervenciones) el 10/11/2009 12:12:00
Ya lo he resuelto. Sobraba el malloc dentro de la función.

Graciasss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar