Mit struct fasst du zusammengehörige Daten zu einem eigenen Typ zusammen. Dynamischen Speicher fordert malloc an und gibt free wieder frei. Vergisst du free, entsteht ein Speicherleck; ein doppeltes free oder die Nutzung nach free führt zu Fehlern.
Prüfe nach malloc immer, ob der Zeiger nicht NULL ist.
#include <stdio.h>
#include <stdlib.h>
struct Person {
char name[20];
int alter;
};
int main(void) {
struct Person p = {"Mia", 17};
printf("%s %d\n", p.name, p.alter);
int *feld = malloc(5 * sizeof(int));
if (feld == NULL) return 1;
for (int i = 0; i < 5; i++) feld[i] = i * i;
printf("%d\n", feld[4]); // 16
free(feld);
return 0;
}Merke
structbündelt DatenAuf jedes
mallocgehört einfreeNach
mallocaufNULLprüfen
Aufgabe
Lege ein Array von Personen per malloc an und gib alle Namen aus.