Hola tengo un problemilla, estoy haciendo un ejercicio de C, que va sobre estructura de un paciente, y al compilarlo me da error, en lista, dice que no es de tipo estructura. Yo no se donde está el problema, si alquien puede ayudarme, aquie le pongo el código.
/*Desarrolla un programa en C que use una estructra para la siguiente
informacion sobre un paciente de un hospital:nomre, direccion, fecha de
nacimiento, sexo, dia de visita y problema medico. El program deve tener una
funcion para entrada de los datos de un paciente, guardar los diversos pacientes
en un array y mostrar los pacientes cuyo dia de visita sea uno determinado.
*/
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
#include <stdio.h>#include <stdlib.h>#define TAM 200struct paciente{     
char *nombre;     
char *direccion;     
char fecha [
10];     
char sexo; 
//V o H     char diavisita [
10];     
char *problema;
     };    
 main(){     
char dia [
10];    
struct paciente *lista;
    tomaDatos(lista);
    printf(
"Intrpoduzca la fecha de la consulta: (dd/mm/aaaa) ");
    gets(dia);
    mostrarConsulta(dia, lista);
    }            
tomaDatos(
struct paciente *lista)
{    
int i;  
char buffer [
80];  
  lista = (
struct paciente*) malloc(TAM*
sizeof(
struct paciente));
  printf(
" Entrada de datos de los pacientes\n");
  printf(
"============================= ==============\n");  
for(i=
0; i < TAM; i++)
  {
     printf(
"Nombre del paciente: \n");
     gets(buffer);
     lista[i]->nombre = malloc(strlen(buffer)+
1);
     strcpy(lista[i]->nombre, buffer);
     printf(
"Direccion del paciente: \n");
     gets(buffer);
     lista[i]->direccion = malloc(strlen(buffer)+
1);
     strcpy(lista[i]->direccion, buffer);
     printf(
"Fecha de nacimiento (dd/mm/aaaa): \n");
     gets(lista[i]->fecha);
     printf(
"Sexo del paciente:\n");
     lista[i]->sexo = getche();
     printf(
"Dia de visita (dd/mm/aaaa): \n");
     gets(lista[i]->diavisita);
     printf(
"Problema medico del paciente: \n");
     gets(buffer);
     lista[i]->problema = malloc(strlen(buffer)+
1);
     strcpy(lista[i]->problema, buffer);
     printf(
"¿Desea continuar (S/N) \n");     
if(getchar() == 
'N') 
return;
     }
   }
  mostrarConsulta(
char *dia, 
struct paciente* lista)
  {    
int i;
    printf(
"Pacientes con visita el dia %s\n\n", dia);
    printf(
"====================   =====================\n");    
for(i=
0; i<TAM; i++)       
if(!strcmp(dia, lista[i]->diavisita))
           printf(
"\t%s \n". lista->nombre);
  }
   <!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->     
Gracias espèro una respuesta lo antes posible.
Resulta que me han comentado algo asi, como q no he declarado la estructura como puntero, por eso no puedo usar las flechas, si alguien me puede decir, sobre este codigo, donde tengo el error, es q no lo veo.
Gracias, saludos desde Andalucia
Saludos