Неправильно выделяете память:
Int **matrix=(int**)malloc(sizeof(int*)*row);
For(int i=0;i<row;i++)
Matrix[i]=(int*)malloc(sizeof(int)*column);
И в конце не забудьте
For()
Free(matrix[i]);
Free(matrix);
Ещё у вас там в цикле условие не по j а по i вообще вникать неохота, я с телефона, ещё
Int*arr=(int*)malloc(sizeof(int)*row*column);
Если все числа будут отрицательными то выделяемых память на всю таблицу