'Why does my won't my code populate the matrix?

My code is trying to find the beginning and ending indices of a section of a matrix that when added, together would equal 20. For each instance this occurs, it would then populate a matrix with said beginning and end indices in the format {beginning row index, beginning column index, ending row index, ending column index} for each row. Each row would represent separate instances. It works fine for one instance but when introduced to other instances it wouldn't populate the matrix. Please help.

#include <cstddef>  // size_t
#include <iostream>
using namespace std;

// Populates matrix
void filler(int bIndr, int bIndc, int eIndr, int eIndc, size_t**matrix, const size_t kIndices_size2, const size_t kIndices_size) {
    int t = 0;
    int matrix2[4] = {0,0,0,0};
    
    for(int i = 0 ; i < kIndices_size2; i++) {
      
      for (int j = 0; j < 2; j++) {
          
          for (int ii = t; ii < kIndices_size; ii++) {
              if(j == 0) {
                  
                  matrix2[ii] = bIndr;
                  matrix2[ii+1] = bIndc;
                  cout << matrix2[ii+1] << endl;
                  break;
              }
              if(j == 1) {
                  matrix2[ii] = eIndr;
                  matrix2[ii+1] = eIndc;
                  cout << matrix2[ii+1] << endl;
                  break;
              }
          }
          t = 2;
      }
    }
    for(int i = 0 ; i < kIndices_size; i++) {
        matrix[kIndices_size2-1][i] = matrix2[i];
    }
}
int main()
{
    int goal = 20;
    int array[2][8] = {{10,0,0,10,0,0,1,0},{0,0,10,0,0,0,10,0}};
    
    int inst = 0;
    int t=0;
    int bIndr = 0;
    int bIndc = 0;
    int eIndr = 0;
    int eIndc = 0;
    const size_t kIndices_size = 4;
    size_t**matrix;
    for(int ii = 0; ii < 2; ii++) {
        bIndc =0;
      for(int j = bIndc; j < 8; j++) { 
        t = 0;
        bIndr = ii;
        bIndc = j;
        for(int i = j; i < 8; i++) {
          t += array[ii][i];
            if((goal-t) == 0) {
              inst++;
              eIndc = i;
              eIndr = ii;
              matrix=new size_t*[inst];
              matrix[inst-1]=new size_t [kIndices_size];
              cout << bIndr << bIndc << eIndr << eIndc << endl;
              filler(bIndr, bIndc, eIndr, eIndc, matrix, inst, kIndices_size);
              break;
            }
          }
      }
    }
    size_t actual_size = static_cast<size_t>(-1); 
    cout << actual_size << endl;
    size_t* sums_found = &actual_size;
    *sums_found = inst;
    
    cout << actual_size << endl;
    cout << matrix[0][0] << endl;
    for(int i = 0; i < inst; i++) {
        for(int ii = 0; ii < kIndices_size; ii++) {
            cout << matrix[i][ii] << " ";
        }
        cout << endl;
    }
    return 0;
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source