Heim >Backend-Entwicklung >C++ >Wie kann ich die Größe eines Arrays bestimmen, das als Funktionsargument in C übergeben wird?
Das Verständnis der Array-Größe bei der Übergabe an eine andere Funktion ohne explizite Angabe ihrer Größe kann in C eine Herausforderung sein. Diese Frage entstand aus der Notwendigkeit, eine Schleife innerhalb einer Funktion auszuführen, die ein Array als Argument empfängt.
Der ursprüngliche Ansatz, eine bedingte Prüfung auf einen NULL-Zeigerwert zu verwenden, erwies sich aufgrund des potenziellen Vorhandenseins unerwarteter Werte als unzureichend im Array.
Eine effektive Lösung in C besteht darin, Vorlagen zu nutzen und das Array weiterzugeben Referenz:
template <typename T, int N> void func(T (&a)[N]) { for (int i = 0; i < N; ++i) a[i] = T(); // reset all elements }
Durch die Angabe der Array-Größe N als Vorlagenparameter kennt die Funktion die genaue Array-Größe, mit der sie arbeitet. Dieser Ansatz stellt sicher, dass die Schleife über die vorgesehene Anzahl von Elementen iteriert.
Um diese Vorlagenfunktion zu nutzen, kann ein Array wie folgt übergeben werden:
int x[10]; func(x);
Das ist es Es ist wichtig zu beachten, dass dieser Ansatz nur für Arrays funktioniert, nicht für Zeiger. Für eine vielseitigere Lösung könnte die Verwendung eines Standardbibliothekscontainers wie std::vector die bessere Wahl sein.
Das obige ist der detaillierte Inhalt vonWie kann ich die Größe eines Arrays bestimmen, das als Funktionsargument in C übergeben wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!