В C++ нельзя получить размер динамического массива во время выполнения программы, потому что размер массива хранится только на этапе компиляции. 2
Это связано с тем, что почти в любом контексте массив преобразуется к указателю на первый элемент, и информация о размере теряется. 3
Если бы существовали стандартные средства для определения размера динамически выделенного массива через указатель на его первый элемент, то компиляторам пришлось бы сохранять информацию о размере всегда, и оптимизация использования памяти стала бы невозможна. 1