Struct zu Array hinzufügen

mcyonx

Grünschnabel
Hallo!
Ich soll ein Programm schreiben, was Buchtitel, Autor und Erscheinungsjahreinliest. In ein Array packen und das Array ausgeben.

Ich hab mir das so gedacht:
Code:
#include <stdio.h>
#include <math.h>

int* array_create ()
{
    return NULL;
}

struct* array_append1 (struct* array, int* laenge, struct inhalt)
{
    (*laenge)++;

    array = (struct*) realloc (array, (*laenge) * sizeof(struct));

    array[*laenge-1] = inhalt;

    return array;
}

void print_array (struct *array, int laenge)
{
    int i;

    for (i = 0; i < laenge; i++)
    {
        printf ("%c ", array[i]);
    }
    printf("\n");
}

void array_delete (int* array)
{
    free(array);
}

int main()
{
    struct buch {
      char titel[20];
      char autor[20];
      int jahr;
    } b1, p2;


    char i,anzz;
    char * buch;
    char* a = array_create ();
    int len = 0;
 
    printf("Titel:");
    scanf("%s", &b1.titel);
    printf("Autor:");
    scanf("%s", &b1.autor);
    printf("Erscheinungsjahr:");
    scanf("%d", &b1.jahr);
    
    //printf("Titel:  %s\n", b1.titel);
    //printf("Autor:  %s\n", b1.autor);
    //printf("Erscheinungsjahr:  %d\n", b1.jahr);
    
    /* 1 anfuegen */
    a = array_append1 (a, &len, b1);
  
    print_array (a, len);

    array_delete (a);

    system("pause");
}

Nur so funktioniert es leider nicht. Kann mir einer helfen und sagen, was ich ändern muss?
Gruß
mcyonx
 
Du musst die Struktur global definieren und dann auch mit 'struct meinestruktur' verwenden.
struct allein hat keine Größe, erst nachdem du eine Struktur mit irgendeinem Namen und Datentypen deklarierst, bekommt Struktur X eine genaue größe.
 
Zurück