scanf no pide memoria, scanf escribe donde vos le dijiste que escriba.
Voy a meter una explicación medio larga, pero primero, lo que falta: si querés reservar cien caracteres hacé:
char *frase = new char[100];
Imaginate que esta es la memoria:
[00][00][00][00][00][00][00][00][00][00]
Tenés sólo diez bytes, digamos que es una computadora muy chica. Pero bueno. En principio toda esa memoria está libre, y la tenés toda marcada como no asignada. Ahora, vos hacés:
char *frase = new char;
Vamos a ignorar por ahora dónde se guarda el valor del puntero. Vos con new le dijiste a la computadora "asigname espacio para guardar un char", y entonces la computadora te dice "ok, acá tenés, está en esta dirección de memoria", y marca espacio para un char (un byte) como usado.
[00][00][00][00][00][00][00][00][00][00]
^-- este byte está marcado como usado
^--- de acá en adelante está marcado libre
Ok, ahora digamos que llamás a scanf, y le pasásfrase. Le estás diciendo: escribí en este lugar lo que entre el usuario. El usuario escribe hola, chars 'h', 'o', 'l', 'a', y un 0 al final para marcar que se terminó. Pasando esos chars a hexadecimal tenés en memoria esto ahora:
h o l a \0
[68][6F][6L][61][00][00][00][00][00][00]
^-- este byte está marcado como usado
^--- de acá en adelante está marcado libre
Pero fijate, a partir del segundo byte sigue marcado como libre. Supongamos que ahora hacés lo mismo, y decís char *frase2 = new char. Le pediste a la computadora más memoria, suficiente para un char. La computadora dice "ok, acá tenés, y te da un puntero al primer espacio libre de memoria, y lo marca usado. Y ahora agarrás y llamás a scanf y le pasás frase2 para que escriba. Y el usuario ingresa "pepe", y scanf escribe a partir del segundo espacio.
[68][70][65][70][65][00][00][00][00][00]
Ves ahí lo que pasó?
[68][70][65][70][65][00][00][00][00][00]
^- frase apunta acá
^- frase2 apunta acá
Y ahora si agarrás y le decís que haga un printf de lo que hay en frase, va a ir a esa dirección de memoria, y leer caracteres hasta encontrar un cero. ¿Y qué va a escribir? Va a escribir "hpepe". Que definitivamente no es lo que querés.