string* terel(const string* nyaj, unsigned& nyajhossz) const { if (nyaj == NULL || nyajhossz == 0) { nyajhossz = 0; return nullptr; } unsigned kapacitas = this->terelo_kapacitas; string *array = new string[nyajhossz]; int hova; // hova kell rakni a következő terelt birkát az array-ba int mit = 0; // hol van most az a birka a nyaj-ban for (hova = 0; hova <= kapacitas; hova++) { // csak az első "kapacitás" darab birkát tereljük while (mit < nyajhossz && nyaj[mit] == "") { // az üres heleyekt lépjük át mit-tel if (kapacitas >= 0) // hmm, ezt nem tudom, kell-e nézni? Szerintem nem... mit++; } if (mit == nyajhossz) break; // nem volt már újabb birka array[hova] = nyaj[mit]; // terelünk, előre kerül a birka kapacitas--; // ezt miért csökkented? mit++; } for (int i = hova; i < nyajhossz; i++) { // Ennek a teljes ciklusnak nincs sok értelme, eleve "" minden, amibe nem írtál semmit if (kapacitas >= 0) { // ennek a szerepét sem értem array[i] = ""; kapacitas--; } } // A kapacitas-on felüli birkákat itt a végén nem tetted át az array-ba! Azért nem kaptál max pontot nyajhossz = hova; return array; }