Plus vraiment en C++ moderne. Tu utilise des déclarations classiques, dépendantes de variables, qui sont limitées au contexte quand tu en a besoin (là ou avec le C il aurait fallut du malloc ou de la taille fixe donc de potentielles erreurs), ce qui limite tes mallocs et cie aux objets principaux des fonctions. Sauf que la plupart de ces objets sont sous la forme de tableaux et autres et tu utilise donc des objets standard comme les vector que tu vient redimensionner si nécessaire, mais qui sont automatiquement détruit à la destruction de l'objet dans tout les cas.
Donc à la fin, tu n'a quasiment plus besoin de malloc nul part.
Quant aux pointeurs, hormis quand tu appelle des fonctions C, tu ne les utilise plus et tu n'utilise que les références. Dire qu'on manipule la mémoire avec des références c'est un peu fort quand même, dans le sens ou c'est encapsulé, autant qu'en Java ou autre finalement. Je vois mal comment tu obtient une erreur avec un passage par référence ...
Enfin, j'imagine que c'est possible, mais j'ai juste jamais vu ça