C - Array Größe während der Laufzeit wählen?

2 Antworten

Array nicht als Array deklarieren, sondern als Pointer auf Typ.

Also z. B.

int *dynamisches_feld;

Dann das Ding per malloc oder calloc auf gewünschte Größe aufspannen:

dynamisches_feld=malloc(feldgroesse*sizeof(int));

oder

dynamisches_feld=calloc(feldgroesse,sizeof(int));

Unterschied zwischen beiden Wegen: bei malloc() bekommst Du ein uninitialisiertes Feld (mit potenziell beliebigen Werten drin), calloc() setzt alle Feldelemente definiert auf 0.

Sicherheitshalber nach malloc()/calloc() prüfen, ob Du den Speicher überhaupt bekommen hast:

if (dynamisches_feld==NULL) { /* Fehlerbehandlung */ }

Tryit44  27.10.2016, 20:22

sehr gut erklärt!

0