Problema con programa en c

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
}
0 respuestas