Witam,
obecnie jestem na etapie nauki języka C++ i doszedłem do momentu, w którym używany jest operator new. Problem występuje wtedy gdy próbuję usunąć wskaźnik pokazujący na tablice utworzona za pomocą tego operatora. Gdy program się wykona konsola się zawiesza, pisze, że program przestał działać i w miejscu gdzie powinien zwrócić 0 zwraca 255. Nie wiem w czym jest rzecz. Bardzo proszę o poradę.
Przykładowy program:
/*
Napisz program odwrocona, który po wprowadzeniu wielkości tablicy oraz wartości poszczególnych
elementów przez użytkownika skopiuje tablice nr 1
do tablicy nr 2 w odwróconej kolejności po czym wyświetli zawartość tablicy numer 2
*/
#include
#include
using namespace std;
int main()
{
int rozmiar; //rozmiar tablicy i poda go uzytkownik
cout<<"Ile liczb chcesz podac?: ";
cin>>rozmiar;
int *wsk1=new int[rozmiar]; //towrzymy tablice za pomoca operatora new,
int *wsk2=new int[rozmiar]; //towrzymy tablice w ktora skopiujemy odwrotnie tekst
for(int i=0, a=1;i
{
cout<<"Podaj "<
cin>>*wsk1;
}
system("cls"); //czyscimy ekran
wsk1-=rozmiar; //cofamy wskaznik by pokazywal na pierwszy element tablicy
cout<<"Tablica 1:"<
for(int i=0, a=1;i
{
cout<<"Element nr. "<
}
cout<
wsk1-=1; //cofamy wskaznik o 1 bo wlaczony jest na element o 1 po tablicy bo gdy wychodzil z petli to go zdazyla przesunac
cout<<"Tablica 2:"<
for(int i=0, a=1; i
{
*wsk2=*wsk1;
cout<<"Element nr. "<
}
delete [] wsk1; //konczymy program i sprzatamy po sobie
delete [] wsk2;
cout<
system("pause");
}
[/code]