unknown: C - Zeigerfrage Array

Beitrag lesen

Ferner ist die Funktion so angelegt, dass sie selbst "weiß", dass es sich beim übergebenen int-Zeiger um einen Zeiger auf das erste von 16 int-Elementen handelt, die logisch als 4 Gruppen zu je 4 Elementen gesehen werden sollen.
ist das schlecht?

Nein, es ist eine gängige Vorgehensweise, weil bei der Übergabe von Arrays als Funktionsparameter in C nur ein Zeiger auf das Array übergeben wird und jegliche Information über die Struktur verlorengeht.

Also in C++ würde man je nachdem welche Größen fest bzw. dynamisch sind folgendes schreiben

* wenn alles statisch fest auf 4 sein muß
void printField(int field[4][4])
{
  ...
}

* wenn daß äußere Feld dynamisch ist
void printField(int (*field)[4], unsigned long size)
{
  ...
}

* wenn alles dynamisch ist
void printField(int** field, unsigned long size1, unsigned long size2)
{
  ...
}

das sollte eigentlich auch in C gehen?