Советую давать переменным более значимые имена. Имена вроде A, B, m, k, i, j и используют в тех случаях, когда специально хотят воспрепятствовать попыткам прочитать программу.
Также советую не использовать голые указатели. Их использование и приводит к таким вот проблемам. Чем вас не устроил std::vector?
Пару ошибок вижу:
for(int i=0;i<A;i++)
{
temp[i]=Arr[i][j];
}
for(int i=0;i<A;i++)
{
Arr[i][j]=temp[i];
}
Переменная temp - это массив размером
B, поэтому если
A больше, происходит выход за пределы.