http://conclase.net/c/curso/cap15
Ejemplo de como lo estas haciendo y como podria funcionar, en error l es una variable local pasada por valor:
Código
#include <cstdio> void error(int *l) { l = new int; } void reserva(int **l) { *l = new int; } void main () { int *m1 = nullptr; int *m2 = nullptr; error(m1); reserva(&m2); }
Por cierto tu codigo no compila ni a palos, no podes llamar new a una funcion en C++ al ser una palabra clave (y no podes usar class en C ...).