Cześć!
Mam błąd przy kompilacji mam błąd:
error: declaration of 'int* tab' shadows a parameter|
Kod programu:
#include <iostream>
using namespace std;
void increase( int tab[], int _size )
{
int *copy_tab = new int[ _size ];
for( short i = 0; i < _size; i++ )
copy_tab[ i ] = tab[ i ];
delete tab;
int *tab = new int[ _size + 1 ];
for( short i = 0; i < _size; i++ )
tab[ i ] = copy_tab[ i ];
tab[ _size + 1 ] = 0;
}
void decrease( int tab[], int size_tab )
{
}
int main()
{
int size_tab = 1;
cout << "Podaj rozmiar tablicy: "; cin >> size_tab;
int *tab = new int[ size_tab ];
for( short i = 0; i < size_tab; i++ )
{
cout << "tab[ " << i << " ] = ";
cin >> tab[ i ];
}
increase( tab, size_tab );
size_tab = size_tab + 1;
for( short i = 0; i < size_tab; i++ )
{
cout << "tab[ " << i << " ] == " << tab[ i ];
}
return 0;
}
Generalnie, zamysł funkcji increase był taki, że zwiększał rozmiar tablicy o 1, zaś funkcja decrease zmniejszała by o 1, ale tym się póki co nie zajmowałem, ponieważ zatrzymałem się na tej pierwszej z powodu w/w błędu. Pomysł na tą pierwszą funkcję miałem taki: przekazujemy do niej tablicę która ma zostać zwiększona ( tab ), oraz jej rozmiar ( size_tab ). Funkcja tworzy kopie owej tablicy o tym samym rozmiarze ( copy_tab ) i przypisuje do niej wartości z oryginału. Następnie usuwa oryginału, tworzy go na nowo tylko, że o jedną szufladkę więcej, przypisuje wartości z kopi oryginału, do ostatniej szufladki przypisuje wartość 0, ponieważ jest ona "nowa".
To co wyżej napisałem, przełożyłem na "papier", no ale błąd przy kompilacji. [*]
Z góry dzięki za pomoc. :)