veamos el codigo:
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
struct tcola
{
char trabajo[80];
struct tcola *sig;
};
void crear(struct tcola **cola)
{
*cola = NULL;
}
int vacia(struct tcola *cola)
{
return (cola == NULL);
}
void encolar(struct tcola **cola, char elem[80])
{
struct tcola *nuevo;
nuevo
= (struct tcola
*) malloc(sizeof(struct tcola
)); nuevo->clave=elem;
if (*cola == NULL)
nuevo->sig = nuevo;
else {
nuevo->sig = (*cola)->sig;
(*cola)->sig = nuevo;
}
(*cola) = nuevo;
}
void desencolar(struct tcola **c1,char elem[])
{
struct tcola *aux;
elem= (c1*)->sig->clave;
if ((*c1) == (*c1)->sig)
{
*c1 = NULL;
}
else
{
aux=(*c1);
(*c1)= aux->sig;
}
printf("en desencolar %s\n",elem
); }
void cliente(int indiceCliente)
{
char cadena[]="hola que tal";
cadena[2]='b';
encolar(&cola,cadena);
}
int main(void)
{
char *cad;
crear(&cola);
cliente(3);// la cola es una variable global
desencolar(&cola,&cad);
}
Bueno pos la salida de main me devuelve por un lado
"en desencolar hoba que tal" ( esto es el primer string que uso como banderita)
aqui una cadena de "basura". como si no modificara el valor de la cadena, mi problema es que no se como devolver la cadena de caracteres en el procedimiento desencolar. No se pasarlo bien por referencia... Alguien me ayuda?¿