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