Witam. Mam program, który otwiera wcześniej przygotowany plik z liczbami. Zczytuje każda linię i zamienia znak na liczbę umieszczając ją przy tym w tablicy. Chcę zrobić automatycznie powiększająca się tablicę. Początkowo ma ona rozmiar 5. Gdy ilość wczytanych liczb przekracza zakres tablicy dochodzi do powiększenia (przynajmniej teoretycznie - bo w tym miejscu program się wykrzacza). Program się kompiluje, ale gdy dochodzi do momentu powiększenia tablicy wyskakuje w konsoli okno: Program ObsługaPliku.exe przestał działać. Gdzie jest problem?
#include <iostream>
#include <fstream>
#include <conio.h>
#include<cstdlib>
using namespace std;
int main()
{
fstream plik;
fstream plik1;
int liczba, rozmiarTablicy = 5;
int wczytaneLiczby[rozmiarTablicy];
char znakRozdzialu;
int ileLiczb=0;
int ileParzystych=0;
int ileNieparzystych=0;
plik1.open("c:\\_LUKASZ\\_MOJE PROJEKTY\\Dane1.txt", ios::out);
plik.open( "c:\\_LUKASZ\\_MOJE PROJEKTY\\liczby.txt", ios::in |ios::out );
if( plik.good() )
{
string linia;
int i = 0;
cout << "W pliku znajduja sie:" << endl << endl;
do
{
plik >> linia;
liczba=atoi(linia.c_str());
ileLiczb++;
cout << i+1 << ". " << liczba << endl;
if (ileLiczb < (rozmiarTablicy - 1))
{
wczytaneLiczby[i] = liczba;
} else
{
int nowyRozmiarTablicy = 2*rozmiarTablicy;
int nowaTablica[nowyRozmiarTablicy];
for (int j = 0; rozmiarTablicy; j++)
{
nowaTablica[j] = wczytaneLiczby[j];
}
rozmiarTablicy = rozmiarTablicy*2;
for (int k = 0; rozmiarTablicy; k++)
{
wczytaneLiczby[k] = nowaTablica[k];
}
wczytaneLiczby[i] = liczba;
}
i++;
if(liczba % 2==0)
ileParzystych++;
else
ileNieparzystych++;
} while( !plik.eof() );
plik.close();
} else cout << "Error! Nie udalo otworzyc sie pliku!" << endl;
plik1<<"W pliku znajdowalo sie "<<ileLiczb<<" liczb w tym: "<<ileParzystych <<" parzystych i " <<ileNieparzystych<<" nieparzystych";
plik1.close();
getch();
return( 0 );
}