Länge eines beliebigen Arrays



  • hallo 🙂

    gibt es (überhaupt) eine möglichkeit, die länge eines beliebigen arrays zu ermitteln.

    ungefähr so:

    template <class T> size_t array_length (T& arr)
    {
        .
        .
        .	
    }
    

    mit (sizeof(T) / sizeof(&arr)) bekomme ich teilweise probleme.

    vielen dank für eure antworten 🙂

    gruß
    I. Harter



  • harter schrieb:

    mit (sizeof(T) / sizeof(&arr)) bekomme ich teilweise probleme.

    Zeige doch mal deine Versuche (Quellcode).



  • harter schrieb:

    hallo 🙂

    gibt es (überhaupt) eine möglichkeit, die länge eines beliebigen arrays zu ermitteln.

    ungefähr so:

    mit (sizeof(T) / sizeof(&arr)) bekomme ich teilweise probleme.

    Das will ich gern glsauben:

    Typ Ein_Array[] = { ... };
    
    size_t size = sizeof(Ein_Array)/sizeof(*Ein-Array);
    


  • Wenn die Länge des Arrays zur Compilezeit bekannt ist, funktioniert folgendes:

    #include <iostream>
    
    template <typename T, unsigned int N>
    unsigned int length(T (&)[N]) {
      return N;
    }
    
    int main() {
      int arr[5];
      std::cout << length(arr) << std::endl;
      return 0;
    }
    

Anmelden zum Antworten