Aparte, un char* en C++ se puede reservar de multiples formas. Si esta hecho con malloc segun la implementación hay formas dependientes de obtener el tamaño reservado para un puntero.
Para el new básicamente no puedes. El runtime sabe cuantos items tienes reservados, pero la respuesta corta (segun el Effective C++) es "magia".
Sería interesante que releyeses el enunciado porque, como #2 y #4 sugieren es posible que te estén preguntando otra cosa. Si este ejercicio no es una prueba para entrar en Facebook o similar, seguramente no te están preguntando esto porque es una pregunta bastante avanzada. Yo me decanto por la opción de la longitud de un string (por lo de que es un char*) porque, si fuera la "dificil" hubieran usado ints o algun otro tipo de dato.