Ошибка в матрице

я попытался выполнить задание:

Добавить строки после каждой четной строки матрицы

но к сожалению в этот месте у меня крах программы что не так я сделал ?

    for (int i = 1; i < line2; i+=2)
{
    for (int j = 0; j < column; j++)
    {
        tmpMatrix[i][j] = ((rand() % 10));
    }
}

полный код вот :

    int line = 0;
    int column = 0;
    
    cout<<"\nEnter the number of lines:";
    cin>>line;
    cout<<"Enter the number of columns:";
    cin>>column;
    
    int**Matrix =new int*[line];
    for (int i = 0; i < line; i++)
    {
        for (int j = 0; j < column; j++)
        {
            Matrix[i] =new int[column];

        }
    }
    
    for (int i = 0; i < line; i++)
    {
        for (int j = 0; j < column; j++)
        {
            Matrix[i][j] = ((rand() % 10));
        }
    }
    
     for (int i = 0; i < line; i++)
    {
        for (int j = 0; j < column; j++)
        {
            cout << setw(2) << Matrix[i][j];
        }
        cout << endl;
    }
    
    int line2=2*line;
    
    int** tmpMatrix = new int*[line2];
    for (int i = 0; i < line; i++)
    {
        for (int j = 0; j < column; j++)
        {
            tmpMatrix[i] = new int[column];

        }
    }
    
    for (int i = 0; i < line; i+=2)
    {
        for (int j = 0; j < column; j++)
        {
            tmpMatrix[i][j]=Matrix[i][j]; 
        }
    }
    
        for (int i = 1; i < line2; i+=2)
    {
        for (int j = 0; j < column; j++)
        {
            tmpMatrix[i][j] = ((rand() % 10));
        }
    }

Прошу прошения если мой вопрос оформлен некорректно.


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

Автор решения: Harry
int line2=2*line;   

Т.е. удвоенное число. Отлично

int** tmpMatrix = new int*[line2];

Оно и выделено - все просто замечательно!

for (int i = 0; i < line; i++)
{

Ой. Инициализируем только половину, вторая половина указателей с мусором...

    for (int j = 0; j < column; j++)
    {

Несмотря на то, что каждый указатель инициализируется column раз - наверное, для надежности и утечки памяти?...

        tmpMatrix[i] = new int[column];
→ Ссылка