Länge eines Arrays bestimmen

  • hallo,

    hab mal eine dämliche Frage:
    wie kann ich die Länge vom Array list bestimmen? habs mal so, wie es unten steht, gemacht, aber da passt irgendwas nicht, weil die Schleife nicht nur 6x durchlaufen wird...

    hat jemand eine Idee, wie ichs besser machen könnte?

    danke schon mal im voraus

    Das Array wird mit

    Code
    int L[] = {5,7,3,9,1,2};
    BTree<int> myTree(L);


    initialisiert und an die Funktion übergeben.

  • Zitat von bbking78

    wie kann ich die Länge vom Array list bestimmen?


    Gar nicht, da list kein Array, sondern ein Pointer ist (Objekte, die in Funktionsargumenten als Array deklariert werden, werden in Wirklichkeit immer in Pointer umgeschrieben). Und es gibt keine Möglichkeit, von einem Pointer rauszufinden, wie groß das Array ist, auf dessen Anfang er zeigt.
    Du wirst wohl die Länge des Arrays als zweites Argument übergeben müssen, wenn es dir wichtig ist, mehrere Werte auf einmal eintragen zu können.

    *plantsch*

  • ahaaa....danke!

    das Problem ist, die Funktionen und ihre Parameter sind vorgegeben, so wie ichs vorhin gepostet habe...
    Nur dann frag ich mich, wie wir den Baum mit den Werten auffüllen sollen, wenn wir nicht wissen, wie viele Elemente in der Liste sind...:confused::confused:

  • hm, eine Frage hätte ich trotzdem noch:

    wenn ich eine Funktion hab, die einen Pointer auf einen unbestimmten Typ zurückgibt, wie muss ich dann die Funktion schreiben, damit es klappt?

    Code
    template <class T>
    T* BTree<T>::getValues(void)
    {
    	T aListe[1];
    	 aListe[0] = 5;
    	 return aListe;
    }

    und der Aufruf

    Code
    int *liste;
    liste = myTree.getValues();

    klappt irgendwie nicht, da der Compiler sagt:
    src/BTree.cpp: In member function `T* BTree<T>::getValues() [with T = int]':
    src/BTree.cpp:9: instantiated from here
    src/BTree.cpp:169: Warnung: address of local variable `aElementListe' returned

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!