При работе с динамическими массивами необходимо передавать размеры в отдельные параметры, потому что при передаче массива в функцию информация о его размере теряется. 3
По правилам C/C++, вместо массива в качестве параметра передаётся указатель на его начало (адрес 1-го элемента). 3 Это позволяет повысить эффективность многих вычислительных алгоритмов, но при этом теряется информация о размере массива, и её необходимо передавать отдельным параметром. 3
Контроль за границами массивов лежит полностью на программисте, поэтому рекомендуется передавать в функцию отдельными параметрами размеры массива — количество строк и столбцов. 1
Также попытки вычислить количество элементов массива с помощью операции sizeof не приводят к успеху, так как в числителе стоит не размер массива, а размер указателя. 2