Array



  • Habe eine Frage.

    Ich erstelle z.b. eine Klasse und stelle diese 5 mal in den Heap (Array)

    wie kann ich nun überprüfen ob das letzte Element beschrieben ist ?

    das Ziel von mir ist eigentlich nur, wenn der Speicher nicht mehr reicht um weiteres Aufzunehmen, soll er den Speicher vergrößern.

    Beispiel:
    5 Waren

    Goods[4] //dieser wert soll nun getestet werden ob hier was zugewiesen worden ist



  • das geht so im allgemeinen nicht weil du ja von vornherein nicht weiss viewiel speicher ein objekt deiner klasse verballern wird...

    am einfachsten ist z.b. sowas...

    std::vector<*myclass> array;
    array.push_back(new myclass(...));// element hinzufügen..
    array.size() liefert dir die aktuelle grösse des arrays...
    array[i] ist wie gewohnt zugriff aufs i-te element
    
    am ende nicht vergessen mit delete wieder den speicher freizugeben...
    


  • Es würde schon "irgendwie" gehen:

    z.B. so:

    klasse *array = new klasse[5];
    
    //....
    // Array ist jetzt voll
    
    klasse *temp = new klasse[5];
    for(unsigned i = 0; i < 5; ++i)
    {
      temp[i] = array[i];
    }
    delete array;
    array = new klasse[6];
    for(unsigned i = 0; i < 5; ++i)
    {
      array[i] = temp[i];
    }
    delete temp;
    
    // nun ist array 6 felder gross und enthält die alten daten.
    

    Aber das ist keine Schöne variante.
    Du solltest wirklich lieber n std::vector nehmen



  • mit Vectoren kenn ich mich noch nicht aus, könnt ihr ein Tutorial empfehlen ?

    mfg




Anmelden zum Antworten