Hola...
Gracias por la respuesta y perdon por la forma en como postee el codigo de mi programa, si es cierto que declare el MAX 1000 y que lo debería usar, pero me di cuenta tarde, porque cuando pegue el codigo en la pregunta me olvide que no habia reemplazado el 1000 por MAX... otra cosa, veo que por la solucion que me has dejado que el programa asigna 1000 casillas a la variable frase de forma dinamica, pero lo que yo andaba buscando es si hay alguna manera de ir ampliando la memoria conforme se van obteniendo los caracteres, por ejemplo si yo escribo una frase de 20 caracteres, la memoria solo asignaria 20 casillas, si fuesen menos caracteres menos casillas y si fueran mas caracteres, mas casillas... eso es lo que trato de hacer con el programa....
espero se haya podido explicar mi duda y gracias otra vez por la respuesta, espero poder encontrar la solucion porque la verdad es que no la he podido encontrar en la web...
Saludos