C++ В конец динамического массива не добавляется элемент с заданным индексом

Меня интересует фрагмент кода начиная с Arr222 (После второго комментария). Как мне кажется, в новый массив должны передаться значения из Arr111 + в конец массива, т.к. он на 1 элемент имеет больше, занестись значение элемента с индексом K. Но результат выполнения этой части - бесконечный вывод нулей.

int main(int argc, char** argv) {
    setlocale(LC_ALL, "Russian");
//  randomize();
    int sizeArr,i,N,K;
    cout<<"Обозначьте размер массива : ";
    cin>>sizeArr;
    cout<<"Заполнение массива псевдослучайными значениями : "<<endl;
    int *Arr = new int[sizeArr];
    for (i=0;i<sizeArr;i++)
    {
        Arr[i]=rand()%10;
        cout<<Arr[i]<<"\t";
    }
    cout<<endl<<endl<<"Действие 1 - Удаление N элементов, начиная с номера K"<<endl;
    cout<<"N = ";
    cin>>N;
    cout<<"K = ";
    cin>>K;
    // (1) создание нового динамического массива размером size - N, чтобы в него перенести только нужные нам элементы:
    int *Arr111 = new int[sizeArr-N];
    cout<<endl;
    for(i=0;i<sizeArr;i++)
    {
        if(i>=K && i<N+K)
        {
        //  cout<<" / delete element / ";
        }
        else
        {
        Arr111[i]=Arr[i];
        cout<<Arr111[i]<<"\t";
        }

    }
    sizeArr=sizeArr-N;
    //cout<<sizeArr;
    // (2) 
    sizeArr++;
    int *Arr222 = new int[sizeArr];
    cout<<endl<<"Задайте номер(индекс) элемента (K), после чего добавим его к массиву "<<endl;
    cout<<"K = "; 
    cin>>K;
    for(i=0;i<sizeArr;i++)
    {
        Arr222[i]=Arr111[i];


        if(i=K)
        {           
            Arr222[sizeArr-1]=Arr222[i];
        }
        cout<<Arr222[i];
    } 

    return 0;
}

И вообще, можете кратко объяснить, какой толк в таких динамических массивах, если с количеством элементов нельзя работать напрямую.


Ответы (0 шт):