это странная проблема, которая у меня есть
У меня есть очень простой конструктор, который создает матрицу без значений:
RegMatrix::RegMatrix(const int numRow, const int numCol):
_numRow(numRow),_numCol(numCol),_matrix()
{
}
_matrix - это вектор, который содержит «Comlex», объект, который я создал
и VAL (i, j) составляет #define VAL(i,j) ((i * _numCol) + j)
Теперь я вызываю этот конструктор в функции transpose:
RegMatrix RegMatrix::transpose()
{
RegMatrix newMatrix(_numCol,_numRow);
cout << "DIMENSIONS " << newMatrix._numRow << " " << newMatrix._numCol << endl;
for(int j=0; j<_numCol; j++)
{
for(int i=0; i<_numRow; i++)
{
newMatrix._matrix[VAL(i,j)] = _matrix[VAL(j,i)]; //<--SEGMENTATION FAULT
}
}
return newMatrix;
}
И вот моя проблема: я получаю ошибку сегментации при первом входе во второй цикл. Когда я использую отладчик eclipse, я вижу, что значения _nunRow и _numCol для newMatrix кажутся мусором (одно - «0», другое - -10000000 или что-то в этом роде). Еще более странным является то, что я добавил строку вывода просто для уверенности, и она дала мне правильные числа!
Итак, есть идеи относительно того, в чем может быть моя проблема?
Спасибо!