Bonjour !
Deux remarques :
* Que vaut taille[0] ?
* Vous modifiez un paramètre passé par valeur, ce qui est possible, mais la modification ne se fait qu'en local, le paramètre n'est pas modifié dans la fonction appelante. Donc, l'allocation se fait, mais vous ne récupérez pas la valeur de tableau2D.
Sinon, pourquoi ne pas utiliser les std::vector ?
Bonne continuation !