Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/12/2008, 11:56
Athon
 
Fecha de Ingreso: diciembre-2008
Mensajes: 1
Antigüedad: 15 años, 5 meses
Puntos: 0
Problemas con rellenar un array pasando como parametro de una funcion

Buenas gente, tengo un problemilla que aún no consigo entender,seguro que es una tonteria,pero he llegado a un punto que me he quedado bloquedo y no consigo avanzar. El tema es el siguiente,tengo que tener un programa que me permita introducir datos en un array de estructuras mediante una funcion rellenar_datos la cual recibe como parametros el array de estructuras,y un limite superior. Después tengo que presentar en pantalla el array de estructuras ya rellenado,mediante una funcion presentar_array que reciba como parametro el array de estructuras. Yo lo que he hecho ha sido lo siguiente.

#include<stdio.h>
#include<stdlib.h>

typedef struct
{
char nombre[20];
char NIF[10];
}tpersona;

void leer_clientes(tcliente[],int,int);
void escribir_clientes(tcliente[],int);

void main()
{
tcliente cliente[5];
leer_clientes(cliente,0,5);
escribir_clientes(cliente);
}

void leer_clientes(tcliente client[],int n1,int n2)
{
int i;
for(i=n1;i<n2;i++)
{
printf("\nIntroduzca nombre del cliente numero %d: ",i+1);
gets(cliente[i].nombre);
printf("\nIntroduzca el NIF del cliente numero %d: ",i+1);
gets(clienet[i].NIF);
}
}

void escribir_clientes(tcliente client[])
{
int i;
tcliente *p=NULL;
p=client;
while(p!=NULL);
{
printf("\nEl cliente numero %d es: \n",i+1);
printf("Nombre: %s\n",client[i].nombre);
printf("NIF: %s\n",client[i].NIF);
p++;
}
}

Esto es de ejemplo, la estructura q tngo yo tiene mas campos,pero no se porque al imprimir uno de los campos también me sale el nombre a continuación. Quisiera también aprender hacerlo mdiante punteros y reservando memoria con la funcion malloc,es decir,crear una matriz dinámica,pero no me sale. Espero que puedan ayudarme.Saludos