Я вижу 1 серьезную ошибку:
// Assign a random values
for (i=0; i<numRows; i++){
for (j=0; j<numColumns; j++){
Arr2D[i][j] = ofRandom(0, 10);
}
}
Здесь переменная 'i' используется в качестве первого индекса для Arr2D и достигает максимального значения (numRows -1)
В то время как вэтот код:
for (i=0; i<numColumns; i++)
{
Arr2D[i] = new int[numRows];
}
Переменная 'i' используется в качестве первого индекса, но достигает максимального значения (numColumns-1).Если numRows намного больше, чем numColumns, то у нас будет проблема.
В качестве примечания.Когда вы пытаетесь убрать, вы пропускаете столбцы:
if((numRowsPrev != 0) && (numColumnsPrev != 0))
{
for (i=0; i<numRowsPrev; i++){
delete [ ] Arr2D[i];
}
// Need to add this line:
delete [] Arr2D;
}
Следующее, что нужно отметить.
Это действительно не очень хорошая идея.Используйте некоторые из предоставленных классов STL (или, возможно, улучшите Matrix).Похоже, вы связываете глобальные переменные и всякие другие неприятные вещи.