Advertisement
m027

Personen2+3

Feb 18th, 2021
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.99 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct{
  5.     char name[30];
  6.     char vorname[30];
  7.     int alter;
  8. }Person;
  9.  
  10.  
  11. int main()
  12. {
  13.     int test;
  14.     int i;
  15.     int size = 0;
  16.     Person *personen = (Person *)malloc(size * sizeof(Person)); //dynamically allocate memory on heap for personen
  17.  
  18.     printf("Wie viele Personen sollen nun eingelesen werden?\n");
  19.     scanf("%d", &size);
  20.  
  21.     if(personen != NULL)
  22.     {
  23.         printf("Speicherallokation war erfolgreich!\n");
  24.     }
  25.     else
  26.     {
  27.         printf("Nicht genügend Speicher vorhanden!\n");
  28.         return 0;
  29.     }
  30.  
  31.     for(i = 1; i <=size; i++)
  32.     {
  33.         printf("\nGib nun Name, Vorname und Alter fuer Person %d an: \n", i);
  34.         printf("Name: \n");
  35.         scanf("%s", personen[i].name);
  36.         printf("Vorname: \n");
  37.         scanf("%s", personen[i].vorname);
  38.         printf("Alter: \n");
  39.         scanf("%d", &personen[i].alter);
  40.  
  41.      
  42.        
  43.     }
  44.  
  45.     for(i = 1; i <=size; i++)
  46.     {
  47.         printf("Daten von Person %d: %s, %s  %d Jahre alt. \n", i, personen[i].name, personen[i].vorname, personen[i].alter);
  48.     }  
  49.  
  50.     char zahl;
  51.  
  52.     printf("\nSollen weitere Personen eingelesen werden? (J/N)\n");
  53.     scanf(" %c", &zahl);
  54.    
  55.     if(zahl == 'N')
  56.     {
  57.         return 0;
  58.     }
  59.    
  60.  
  61.     printf("Wie viele Personen sollen weiterhin eingelesen werden?\n");
  62.     scanf("%d", &size);
  63.  
  64.     personen = realloc(personen, size*sizeof(Person));
  65.  
  66.     for(i = 1; i <=size; i++)
  67.     {
  68.         printf("\nGib nun Name, Vorname und Alter fuer Person %d an: \n", i);
  69.         printf("Name: \n");
  70.         scanf("%s", personen[i].name);
  71.         printf("Vorname: \n");
  72.         scanf("%s", personen[i].vorname);
  73.         printf("Alter: \n");
  74.         scanf("%d", &personen[i].alter);
  75.  
  76.     }
  77.  
  78.     for(i = 1; i <=size; i++)
  79.     {
  80.         printf("Daten von Person %d: %s, %s  %d Jahre alt. \n", i, personen[i].name, personen[i].vorname, personen[i].alter);
  81.     }  
  82.  
  83.     free(personen);
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement