Тема: Динамічна пам'ять і матриці
Підкажіть де я наробив дурниць?
//Ввести цілочисельну матрицю 10×3 і створити нову матрицю з тих рядків 
//введеної матриці, які містять хоча б один елемент – двійку
#include "pch.h"
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    srand(time(NULL)); 
    setlocale(LC_CTYPE, "ukr");
    int a[10][3], i, j, rowc = 0, k = 0;
    cout << "Введiть матрицю з 10-ти рядкiв i 3-х стовпцiв:" << endl;
    int r[10] = { 0 };// r – масив кількості двійок в рядках матриці   
    for (i = 0; i < 10; i++)
    {
        for (j = 0; j < 3; j++)
        {
            a[i][j] = (rand() % 16) - 1;
            if (a[i][j] == 2)
            {
                r[i]++;
            }
        }
    }
    for (i = 0; i < 10; i++)
    {
        for (j = 0; j < 3; j++)
        {
            cout << a[i][j] << "\t";
        }
        cout << endl;
    }
    for (i = 0; i < 10; i++)// Обчислення кількості рядків з 2-ою     
        if (r[i] == 1)
            rowc++; // r[i]=1  означає, що в і-му рядку є двійки   
    int **b = new int *[rowc];// Виділення пам’яті для динамічної матриці b
    for (i = 0; i < rowc; i++)
        b[i] = new int[3];
    for (i = 0; i < 10; i++)
    {
        if (r[i] != 0)// Якщо в і-му рядку нулів немає, відбувається
        {
            for (j = 0;j < 3;j++)
            {
                b[k][j] = a[i][j];//копіювання рядка у нову матрицю      
                k++;   // і збільшення індексу рядка нової матриці.
            }
        }
    }
    cout << "\nМатриця, в рядках якої є двійки:" << endl;
    for (i = 0; i < rowc; i++)
    {
        for (j = 0; j < 3; j++)
            cout << b[i][j] << "\t";
        cout << endl;
    }
    // Звільнення пам’яті від динамічної матриці 
    for (int i = 0; i < rowc; i++)
        delete[] b[i];
    delete[]b;
    system("pause>>void");
    return 0;
}Помилка:
 
Також, я не впевнений чи правильно використав масив r[]
