Ich muss Name in eine Variable (Vorname *) in einer Struktur eingeben mit einem malloc ich verstehe nicht, warum zu programmieren ist fehlgeschlagen zu laufen. im Namen (zum Beispiel David) Einsetzen und das sollte bekommt den Namen und legen Sie sie in temporärer Array und dann den Zeiger first_name * , um die Größe und die Zeichenfolge Temp kopieren * first_nameverschachtelte Strukturen - Eingabe
jemand kann mir helfen, zu verstehen warum es nicht funktioniert?
suchen Sie nach der Funktion "ReadPerson".
typedef struct{
int day, month, year;
} Date;
typedef struct{
char *first_name, *last_name;
int id;
Date birthday;
} Person;
void ReadDate(Date *a)
{
printf("insert day, month, year\n");
scanf("%d%d%d", &a->day, &a->month,&a->year);
}
void ReadPerson(Person *b)
{
char temp_first_name[21];
char temp_last_name[21];
printf("insert first name:\n");
gets(temp_first_name);
b->first_name = (char*)malloc(strlen(temp_first_name)+1);
strcpy(b->first_name,temp_first_name);
//need to check malloc (later)
printf("insert last name:\n");
gets(temp_last_name);
b->last_name = (char*)malloc(strlen(temp_last_name)+1);
strcpy(b->last_name, temp_last_name);
//need to check malloc (later)
printf("insert id\n");
scanf("%d",&b->id);
printf("insert person's birthday:\n");
ReadDate(b);
}
Danke.
Kompiliert es überhaupt? Hier: 'ReadDate (b);' übergeben Sie 'b' vom Typ' Person * 'an eine Funktion, die' Date * 'erwartet. –
Überprüfen Sie [hier] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc), um herauszufinden, warum Sie den Rückgabewert von 'malloc()' nicht umsetzen sollten. – naccyde