>> COLUMNA 1: Imos agora corrixir este último programa.
E esta vez, imos reservar explicitamente algunha memoria en que o
entrada do usuario será almacenado.
Para iso, imos mellorar en que o primeiro liña de código na que declarou s
anteriormente para ser unha estrela de char.
Esta vez, imos re-declarar lo do seguinte xeito -
carácter s soporte de 16, por exemplo, preto soporte.
>> Noutras palabras, imos declarar sa non máis ser un enderezo dun personaxe,
senón un conxunto de 16 carácteres.
Deste xeito, o usuario pode introducir ata 15 caracteres e aínda deixar espazo para
un terminador nulo.
Imos continuar a gardar, compilar e executar este programa.
Facer barra scanf2 punto scanf2.
Imos agora escribir unha cadea como Ola, e estamos agradeceu o Olá
>> Agora, aínda hai un problema.
Eu só escriba Ola, o que só é cinco personaxes, máis 1 ao nulo
Terminator.
Iso nos deixa con só unha necesidade de seis bytes.
>> Pero, desgraciadamente, só alocados 16 en total.
Polo tanto, se o usuario realmente tipo en 16 caracteres, ou 17, ou varios centos
caracteres, aínda non vai ten espazo suficiente na memoria ao
de entrada do usuario.
E, de feito, iso é o que fai obter a entrada do usuario de forma
dificultade en xeral.
E, de feito, é por iso que nós Implementar a función cadea get no primeiro
lugar na biblioteca CS50 -
para descubrir como xestionar os situacións en que o usuario escribe
máis caracteres que nós inicialmente previsto.
>> Francamente, sen totalmente reescribir este programa,
non hai solución limpa.
Pola contra, o que temos que facer é obter un personaxe do usuario, un de cada
tempo, unha e outra vez.
E en cada momento, se entendemos que estamos sen memoria, teriamos que a
Nese punto volver e realocar algo máis de memoria, por favor copie o usuario do
entrada anterior do noso primeiro anaco de memoria para a nova,
maior bloque de memoria.
E, a continuación, repetir o proceso de novo e novo ata que o usuario está feito introducindo
súa entrada.