diff --git a/lib/atc/SparseMatrix-inl.h b/lib/atc/SparseMatrix-inl.h index 8d6aec78dca94f04503caf662761ff203d4e75e7..f70dd0361d3cf52e519fef06abc07f0518c86b21 100644 --- a/lib/atc/SparseMatrix-inl.h +++ b/lib/atc/SparseMatrix-inl.h @@ -67,9 +67,9 @@ void SparseMatrix<T>::_create(INDEX size, INDEX nrows) // assign memory to hold matrix try { - _val = (_size*nrows) ? new T [_size] : NULL; - _ia = (_size*nrows) ? new INDEX [_nRowsCRS+1] : NULL; - _ja = (_size*nrows) ? new INDEX [_size] : NULL; + _val = (_size && nrows) ? new T [_size] : NULL; + _ia = (_size && nrows) ? new INDEX [_nRowsCRS+1] : NULL; + _ja = (_size && nrows) ? new INDEX [_size] : NULL; } catch (std::exception &e) {