Array Ende



  • Wie kann ich testen ob ich den letzten Eintrag in einem Array benutze.
    ALso ich benötige den letzen Index eines Arrays um weiter zu rechnen aber keine Ahnung wie ich das testen kann.
    Mein Idea war zuerst, dass ich Frage wie viele Bytes der Arrayindex hat und sobald der gleich 0 ist soll er den index zurückgeben



  • kommt drauf an, wie dein Array vorliegt.
    Wenn du nur einen Zeiger auf das erste Element hast, dann geht es nciht. Wenn du aber tatsäöchlich ein Array hast, dann kannst du mit sizeof(arrayVariable)/sizeof(arrayVariable[0]) die Anzahl der Elemente des Arrays herausfinden.
    Das ist aber nur der Fall, wenn die Größe des Arrays bereits zur Kompile-Zeit bekannt ist, dürfte für dich also uninteressant sein.
    Wofür brauchst du das denn?



  • Also ich habe ein Array indem jede Zeile einer Datei vorhanden ist. Sprich Array[1] = Zeile 1.
    Jetzt möchte ich aber eine Abfrage starten, die testet, ob er bei dem letzten Element angekommen ist.
    Ich muss ein Array deklararieren und das steht bei mir auf 300. In der Datei können jetzt aber z.B. nur 12 Zeilen sein.
    Wenn ich jetzt mit sizeof(arrayVariable)/sizeof(arrayVariable[0]) arbeite, dann gibt er mir immer nur 300 aus.
    rein theretisch müsste es doch möglich sein, das er den arrayindex testet (Array[1]) und abfragt, ob dieser leer ist oder nicht. Wenn er leer ist, dann gebe den Index zurück und man sollte doch den letzten haben.



  • Beispiel:

    #define TITLE 300
    CString str_Merkmale[TITLE];
    
    int Zaehler = 0;
    
    for (int i = 0; i < TITLE; i++) 
    {
        if (str_Merkmale[i] != "")  // wenn Feld nicht leer,
        {
            Zaehler++;              // zaehle den Zaehler um eins hoch.
        }
    }
    

    somit hättest Du die Anzahl der belegten Felder im Array.

    Turmfalke64



  • Nimm doch einen std::vector statt des Arrays.


Anmelden zum Antworten