Не получается сделать динамический массив, в котором количество строк и элементов в строке определяет пользователь.
пишу так: int *m = new int[k][a]; , но не получается
Конечно не получается - в C++ нет многомерных массивов. Есть массивы массивов, массивы указателей на массивы, массивы векторов и т. д. во всех возможных комбинациях. У всех вариантов есть свои плюсы и минусы. Вот исходя из этого и действуй.