Struct + malloc Problem



  • Hallo ich hätte da mal ne Frage!Hab folgendes Programm geschrieben:

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

    typedef struct
    {
    char name[30];
    char vname[30];
    int alter;
    int Gebjahr;

    }Mensch;

    int main()
    {

    int i,laenge;
    Mensch *a;

    printf("Wieviele Personen moechten sie einlesen?");
    scanf("%d",&laenge);
    a = (Mensch*) malloc (laenge*sizeof(Mensch));
    for (i=0; i<=laenge; i++)
    {
    printf ("Bitte geben sie den Namen ein \n");
    scanf ("%s",&a[i].name);
    printf ("Bitte geben sie den Vornamen ein \n");
    scanf ("%s",&a[i].vname);
    printf ("Bitte geben sie das Alter ein \n");
    scanf ("%d",&a[i].alter);
    printf ("Bitte geben sie das Geburtsjahr ein \n");
    scanf ("%d",&a[i].Gebjahr);
    }
    free(a);
    printf("Sie haben %d Personen eingelesen:",i);
    printf ("Der Name,Vorname,das Alter und das Geburtsjahr der ersten Person ist\n%s\n%s\n%d\n%d\n",a[0].name,a[0].vname,a[0].alter,a[0].Gebjahr);
    printf ("Der Name,Vorname,das Alter und das Geburtsjahr der zweiten Person ist\n%s\n%s\n%d\n%d\n",a[1].name,a[1].vname,a[1].alter,a[1].Gebjahr);

    system("PAUSE");
    }

    Hab jetzt aber das Problem das nach Einlesen des Structes das Programm einfach abbricht.Woran könnte das liegen?



  • Du solltest nicht free(a); aufrufen wenn du auf a danach noch zugreifst.
    (Ist aber kein C# und hat nichts mit .NET zu tun)



  • Ahh jetzt gehts danke!Außerdem war das <= in der for Schleife falsch merkte ich.Sorry wegen falschem Post


Anmelden zum Antworten