Frage von Ggamer14, 23

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

Wie kann ich die Größe eines Arrays während des Programmablaufs bestimmen? Wie muss ich vorgehen und was sind die Stichworte die mir weiterhelfen?

Antwort
von tDoni, 14
Antwort
von triopasi, 18

Stichwort: Nimm ne Liste!

Antwort
von dan030, 13

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 */ }

Kommentar von Tryit44 ,

sehr gut erklärt!

Keine passende Antwort gefunden?

Fragen Sie die Community