Witam, mam problem, muszę napisać program, który wykonuje parę operacji, ale problem póki co jest w jednej tylko (bo dopiero jedną napisałem), program ma za zadanie dodać do tablicy dynamicznej kolejne wartości, ale wpierw ją musi rozszerzyć, problem w tym, że podczas przypisywania tablicy pod buffor, crashuje się program, czy mógłby ktoś pomóc z tym? Problem występuje w funkcji "dodawanie_elementu".
#include <iostream>
using namespace std;
int n,*tab1, *buff;
int tworzenie_tablicy()
{
cout<<"Podaj rozmiar tablicy = ";
cin>>n;
cout<<endl;
int *tab1 = new int[n];
for (int i=0;i<n;i++)
{
cout<<"Podaj "<<i+1<<" wartosc tablicy = ";
cin>>tab1[i];
}
}
void dodawanie_elementu(int n)
{
int x;
int *buff = new int[n];
cout<<"Ile elementow chcesz dodac?"<<endl<<"x = ";
cin>>x; //Ile elementow dodać
for (int i=0;i<n;i++)
buff[i]=tab1[i]; //Przypisanie tablicy tab1 pod buffor
tab1 = new int[n+x]; //Zresetowanie tablicy tab1 i rozszerzenie jej
for (int i=0;i<n;i++)
tab1[i]=buff[i]; //Przypisanie poprzednich znakow pod tab1 z buffora
for (int i=n;i<n+x;i++)
{
cout<<"Podaj "<<n+1<<" wyraz = ";
cin>>tab1[i]; //Dopisanie nowych znakow
}
}
void usuwanie_elementu()
{
}
void tablica_parzysta()
{
}
void wyswietlenie_tablic()
{
}
void wyjscie()
{
}
void wybor_operacji()
{
int x;
cout<<"Program umozliwia wykonywanie, dla tablicy jednowymiarowej dynamicznej liczb calkowitych wybranej operacji"<<endl;
do
{
cout<<endl<<"Wybierz operacje"<<endl<<endl<<"1. Utworzenie wlasnej tablicy"<<endl<<"2. Dodanie nowego elementu"<<endl<<"3. Usuwanie istniejacego elementu"<<endl<<"4. Utworzenie tablicy zawierajacej elementy parzyste"<<endl<<"5. Wyswietlenie tablicy"<<endl<<endl;
cout<<"Wybor = ";
cin>>x;
cout<<endl;
switch (x)
{
case 1:
{
tworzenie_tablicy();
break;
}
case 2:
{
dodawanie_elementu(n);
break;
}
case 3:
{
usuwanie_elementu();
break;
}
case 4:
{
tablica_parzysta();
break;
}
case 5:
{
wyswietlenie_tablic();
break;
}
case 0:
{
wyjscie();
break;
}
default:
{
cout<<"Brak takiej opcji"<<endl;
break;
}
}
}
while (x!=0);
}
int main()
{
wybor_operacji();
}