En este programa he creado un tipo que se un struct que se llama red,a la funcion leer_archivo le paso como parametro un vector del tipo red,dentro de la funcion los valores son correctos,pero cuando vuelvo al main el vector .Si falta algo o sobra es que el programa usa varios ficheros,pero aqui puse solo lo que me estaba fallando.que queria cargar esta vacio.
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include"redes.h"
/*
*
*/
typedef char mac[15];
typedef char ip [15] ;
typedef struct {
ip Dip;
mac Dmac;
char estado;
}red;
int main(int argc, char** argv) {
red puestos[numpuestos];
leer_archivo(puestos);
puts(puestos[0].Dmac);//esto sigue vacio
return (EXIT_SUCCESS);
}
void leer_archivo(red puestos[]){
//separa el artchivo por filas con fgets
char vector[100];
int i;
i=0;
FILE *fp;
fp=fopen("redes.txt","r");
if(fp!=NULL){
while(fgets(vector,30,fp)!=NULL){
separar(vector,puestos[i].Dmac,puestos[i].Dip,&puestos[i].estado);
}
}else
printf("fallo");
fclose(fp);
}
void separar(char ori[],char dest[],char dest2[],char * est){
//puts(ori);
strncpy(dest,ori,13);
dest[12]='\0';
//solo cargo el primer vector del struct
puts(dest);//aqui los valores de dest son correctos
}