Hallo,
ich habe eine Frage zu C-Arrays als Funktionsparameter.
Dieses funktioniert. Wenn ich das Array allerdings als Parameter einer Funktion übergebe, funktioniert es nicht mehr:
Das ein C-Array quasi ein konstanter Zeiger auf das erste Element des Arrays ist, ist mir klar. Wieso ist die Information über die Größe eines Arrays außerhalb des Sichtbarkeitsbereichs der Definition nicht mehr vorhanden?
ich habe eine Frage zu C-Arrays als Funktionsparameter.
C++:
int array[] {1,2,4,6,4,8,6,4,5};
int groesse = std::end(array) - std::begin(array);
std::cout << groesse;
C++:
anzahlElemente(array);
void anzahlElemente(int a[]) {
std::cout << sizeof(a); // gibt 4 aus (Die Größe des Zeigers in Byte)
// std::cout << "Anzahl Elemente: " << (std::end(a) - std::begin(a)); // Fehler. Kompiliert nicht!
}
Das ein C-Array quasi ein konstanter Zeiger auf das erste Element des Arrays ist, ist mir klar. Wieso ist die Information über die Größe eines Arrays außerhalb des Sichtbarkeitsbereichs der Definition nicht mehr vorhanden?