Manejo de Estructuras

Estructura Básico con ejemplo con una estructura Libro

#include <iostream>
#include <stdlib.h>
#include <conio.h>

typedef struct Libros
{
    char clave[15];
    char titulo[30];
    char autor[30];
    char categoria[20];
} Libro;

void  guardaLibro();
void imprimeLibro(Libro tmpLibro);


int main()
{
    Libro miPrimerLibro;
    miPrimerLibro = guardaLibro();

    imprimeLibro(miPrimerLibro);
    getchar(); getchar();
    return 0;
}
Libro guardaLibro()
{
    Libro tmpLibro;
    printf("Dame la clave del Libro: ");
    gets(tmpLibro.clave);
    printf("Dame el nombre del Libro: ");
    gets(tmpLibro.titulo);
    printf("Dame el autor del Libro: ");
    gets(tmpLibro.autor);    
    printf("Dame el categoria del Libro: ");
    gets(tmpLibro.categoria);
    return tmpLibro;

}
void imprimeLibro(Libro tmpLibro)
{
    printf("Clave del Libro: %s", tmpLibro.clave);
    printf("\nnombre del Libro: %s", tmpLibro.titulo);
    printf("\nautor del Libro: %s", tmpLibro.autor);
    printf("\ncategoria del Libro: %s", tmpLibro.categoria);
}
  

Ejemplo de una Estructura utilizando punteros

#include <iostream>
#include <stdlib.h>
#include <conio.h>

typedef struct Libros
{
    char clave[15];
    char titulo[30];
    char autor[30];
    char categoria[20];
} Libro;

int main()
{
    Libro *punteroLibro, libro;
    punteroLibro = &libro;
    gets(punteroLibro->clave);
    printf("Dame el nombre del Libro: ");
    gets(punteroLibro->titulo);
    printf("Dame el autor del Libro: ");
    gets(punteroLibro->autor);    
    printf("Dame el categoria del Libro: ");
    gets(punteroLibro->categoria);

    printf("Clave del Libro: %s", punteroLibro->clave);
    printf("\nnombre del Libro: %s", punteroLibro->titulo);
    printf("\nautor del Libro: %s", punteroLibro->autor);
    printf("\ncategoria del Libro: %s", punteroLibro->categoria);


    return 0;
}
                  

Ejemplo de una Estructura utilizando punteros con Memoria Dinámica

#include <iostream>
#include <stdlib.h>
#include <conio.h>

typedef struct Libros
{
    char clave[15];
    char titulo[30];
    char autor[30];
    char categoria[20];
} Libro;
void guardarLibros(Libro *tmpLibros, int n);
int main()
{
    Libro *punteroLibro;
    int totalLibros;
    printf("Proporcione el numero de libros que desea guardar: ");
    scanf("%d", &totalLibros);
    punteroLibro = (Libro *) malloc(sizeof(Libro)*totalLibros);
    guardarLibros(punteroLibro, totalLibros);
    return 0;
}
void guardarLibros(Libro *tmpLibros, int n)
{
    int i=0;
    for(i=0; i<n; i++)
    {
        printf("Guardando Libro: %d", i);
        printf("\nDame la clave del Libro: ");
        gets(tmpLibros[i].clave);
        printf("Dame el nombre del Libro: ");
        gets(tmpLibros[i].titulo);
        printf("Dame el autor del Libro: ");
        gets(tmpLibros[i].autor);    
        printf("Dame el categoria del Libro: ");
        gets(tmpLibros[i].categoria);
    }
}