Its not necessary to pass those pointers by reference because the functions aren't changing them. Passing by reference in those functions does nothing more than bloat the code. Just pass the pointers instead.
>>++mat->element;
You don't want to do that. Do it like this:
for (int j = 0; j < mat->columns; ++j)
{
print << mat->element[j] << " ";
}