Работают без всяких нареканий.
я и написал, насколько оно другое.
В С++ двумерный динамический массив передается в функцию так:
void Foo(std::vector< std::vector > &matrix)
А онанизм с массивами указателей - это спагетти и гарантированные утечки и сегфолты.