COLUNA 1: Vamos agora corrigir esse último programa. E desta vez, vamos alocar explicitamente alguma memória em que o entrada do usuário será armazenado. Para isso, vamos aprimorar em que o primeiro linha de código em que declarou s anteriormente para ser uma estrela de char. Desta vez, vamos re-declarar lo da seguinte forma - caractere s suporte de 16, por exemplo, próximo suporte. Em outras palavras, vamos declarar s para não mais ser um endereço de um personagem, mas sim um conjunto de 16 caracteres. Desta forma, o usuário pode digitar até 15 caracteres e ainda deixar espaço para um terminador nulo. Vamos prosseguir para salvar, compilar e executar este programa. Fazer barra scanf2 ponto scanf2. Vamos agora escrever uma string como Olá, e estamos agradeceu o Olá. Agora, ainda há um problema. Eu só digitei Olá, o que só é cinco personagens, mais 1 para o nulo terminator. Isso nos deixa com apenas uma necessidade de seis bytes. Mas, infelizmente, nós só alocados 16 no total. Portanto, se o usuário realmente tipos em 16 caracteres, ou 17, ou várias centenas caracteres, ainda não vai tem espaço suficiente na memória para o de entrada do usuário. E, de fato, isso é o que faz obter a entrada do usuário de modo dificuldade em geral. E, de fato, é por isso que nós implementamos a função string get no primeiro lugar na biblioteca CS50 - para descobrir como lidar com os situações em que o usuário digita mais caracteres do que nós inicialmente previsto. Francamente, sem completamente reescrever este programa, não há solução limpa. Em vez disso, o que nós temos que fazer é obter um personagem do usuário, um de cada tempo, uma e outra vez. E a cada momento, se percebemos que estamos sem memória, teríamos que a Nesse ponto voltar e realocar um pouco mais de memória, copie o usuário do entrada anterior do nosso primeiro pedaço de memória para o novo, maior bloco de memória. E, em seguida, repetir o processo novamente e novamente até que o usuário é feito fornecendo sua entrada.