#include <iostream>
using namespace std;
void PrintArray (bool *Arr, int SizeArr) //Вспомогательная функция для вывода массива на экран
{
for (int i=0; i<SizeArr; i++)
{
cout<<Arr[i]<<'\t';
}
}
bool* NewDemension (bool *Arr, int *OldSize, int NewSize) //Функция новой размерности массива Arr - старый массив(указатель на его первый элемент
{ //OldSize - ссылка на переменную в которой храниться размерность старого массива
//NewSize - новый размер массива
bool *ArrNew = new bool [NewSize]; //Формируем новый динамический массив с размерностью NewSize
for (int i=0; i<NewSize; i++) //Заполним новый массив старыми значениями
{
if (i < *OldSize) //Если текущий элемент меньше кол-ва элементов старого массива
ArrNew[i] = Arr[i]; //То заполняем значение старого Если новый массив размерностью меньше, то все что > его размерности отбрасываем
else{ // Если текущий элемент > чем размерность старого массива
cout<<"Arr["<<i<<"] = "; //То заполним его с клавиатуры
cin>>ArrNew[i];
}
}
*OldSize = NewSize; //Присваем значение переменной Размерности массива новое значение (по ее адресу)
delete[] Arr; //Удалим мусор - наш старый массив
return ArrNew; //Вернем указатель на новый массив (его первый элемент)
}
int main (void)
{
int ArrSize = 0; //Размер массива
cout<<"Input Size Array :";
cin>>ArrSize; //Введем размер
bool *Arr = new bool[ArrSize]; //Создадим динамический массив размером ArrSize
//Заполним массив с клавиатуры (помним про тип bool (только 0 или 1))
for (int i = 0; i< ArrSize; i++)
{
cout<<"Arr["<<i<<"] = ";
cin>>Arr[i];
}
PrintArray(Arr,ArrSize); //Выведим на экран
Arr = NewDemension(Arr,&ArrSize,5); //Изменим размерность на 5 элементов
PrintArray(Arr,ArrSize); //Выведим заново на экран
}