In C Signatur vereinfachen?

2 Antworten

Mit Arrays beispielsweise:

funktion(int zahl[], size_t size);

Und dann greifst du auf die einzelnen Zahlen folgendermaßen zu:

zahl[0];
zahl[1];
zahl[2];
zahl[3];
zqhl[4];
zahl[5];

Über das zusätzliche Parameter "size" gibst du die Größe des Arrays an, damit du nicht aus Versehen auf ein Element des Arrays zugreifst, das nicht existiert (das wirft dir dann womöglich einen Fehler...oder auch nicht, was noch schlimmer ist, denn dann schreibst du irgendwo in deinen Speicher, ohne es zu merken.)

Bestenfalls kannst du einen Pointer auf ein Array übergeben:

funktion(int* zahl)

Dann musst du aber:

  1. Die Funktion mit einem Array aufrufen
  2. Die Länge des Arrays in der Funktion kennen
FreshGrades 
Fragesteller
 27.10.2022, 15:27

uff also nichts triviales ok danke, dachte gibt wieder sowas ähnliches wie x= x+1 ist ja das gleich wie x++

0
Gehilfling  27.10.2022, 15:28
@FreshGrades

Nein, in C muss für jeden Parameter der Typ bekannt sein. Die genannte Schreibweise geht nicht. Das wäre ein Funktionsaufruf innerhalb der Paramterliste.

0