Zdravím, mám tu před sebou celkem hnusný úkol a nevím si rady ... chci, aby mi funkce zjisteniRoku zaplnila intové pole jednotlivými roky, přičemž uživatel může zadat jeden rok i interval roků... a když nevím jak velké pole budu mít, musím ho dynamicky alokovat, ne? na to mám vytvořenou další funkci, která mi to pole zvětšuje ... ale někde v té hrůze je nějaká strašlivá chyba, na kterou nemůžu přijít a dohání mě k šílenství ... prosím někoho o radu, co tam dělám špatně
void zvetsitPole(int arr[], int &a)
{
int *arr2 = new int [a + 1];
for (int i = 0; i < a; i++)
arr2[i] = arr[i];
delete [] arr;
arr = arr2;
a++;
}
void zvetsitPole(string arr[], int &a)
{
string *arr2 = new string [a + 1];
for (int i = 0; i < a; i++)
arr2[i] = arr[i];
delete [] arr;
arr = arr2;
a++;
}
char zjisteniRoku(const char * years, int roky[], int &delka)
{
string s;
s = years;
for (unsigned int i = 0; i < s.length(); i++)
if (s[i]==' ') s.erase(i,1);
cout << s << endl;
int delkaArr = 0;
string *arr = new string [delkaArr];
char *p = &s[0];
char *token = strtok(p, ",");
int i = 0;
while (token != NULL)
{
zvetsitPole(arr,delkaArr);
arr[i] = token;
token = strtok(NULL, ",");
i++;
}
for (unsigned int i = 0; i < delka; i++)
{
if (arr[i].length() == 4)
{
cout << delka << endl;
zvetsitPole(roky, delka);
cout << delka << endl;
int rok = atoi(arr[i].c_str());
roky[i] = rok;
cout << roky[i]<<endl;
}
else if (arr[i].length()==8)
{
string s1 = arr[i].substr(0,4);
string s2 = arr[i].substr(4,4);
int is1 = atoi(s1.c_str());
int is2 = atoi(s2.c_str());
while (is1<=is2)
{
roky[i] = is1;
i++;
is1++;
}
}
}
return 0;
}
int vytvorPoleIntu( const char * years )
{
int delka = 0;
int *roky = new int [delka];
zjisteniRoku(years,roky,delka);
for (int i=0; i < delka; i++) cout << roky[i] << endl;
return 0;
}