Powiększenie elementów tablicy
Ostatnio zmodyfikowano 2015-03-25 09:01
cryuff Temat założony przez niniejszego użytkownika |
Powiększenie elementów tablicy » 2015-03-25 00:02:18 Tworzę tablicę poprzez konstruktor w klasie oraz dodaję do niej element: Tablica::Tablica( int roz ) { srand( time( NULL ) ); tablica = new int[ roz ]; for( int i = 0; i < roz; i++ ) tablica[ i ] = rand(); rozmiar = roz; }
void Tablica::dodajpocz( int liczba ) { int * nowa_tablica = new int[ rozmiar + 1 ]; for( int i = 0; i < rozmiar + 1; i++ ) { nowa_tablica[ i + 1 ] = tablica[ i ]; } nowa_tablica[ 0 ] = liczba; tablica = nowa_tablica; }
Niestety dodaje element na początku tablicy jednak ucina ostatni element. Mógłby mi ktoś napisać co jest nie tak? |
|
pekfos |
» 2015-03-25 00:04:53 Nie aktualizujesz zmiennej rozmiar i wychodzisz poza zakres tablicy przy kopiowaniu. |
|
cryuff Temat założony przez niniejszego użytkownika |
» 2015-03-25 00:12:19 Analogicznie zrobiłem metodę dodającą do końca jednak dodaje element ale o niewłaściwej wartości: void Tablica::dodajkoniec( int liczba ) { int * nowa_tablica = new int[ rozmiar + 1 ]; for( int i = 0; i < rozmiar; i++ ) nowa_tablica[ i ] = tablica[ i ]; nowa_tablica[ rozmiar + 1 ] = liczba; rozmiar = rozmiar + 1; tablica = nowa_tablica; }
|
|
maly |
» 2015-03-25 09:01:43 nowa_tablica[ rozmiar + 1 ] = liczba; za daleko. |
|
« 1 » |