ZVUČNIK 1: Idemo sad popraviti da je prošle programa. I ovaj put, neka je izrijekom izdvojiti dio memorije u kojoj Korisnički ulaz će biti pohranjeni. Da biste to učinili, neka je brusiti na taj prvi linija koda gdje smo deklarirana s. prethodno biti char zvijezda. Ovaj put, idemo ponovno Objavite je na sljedeći način - char je nosač 16, na primjer, blizu nosač. Drugim riječima, neka se proglasi e kojima nema više biti adresu lika, nego niz od 16 znakova. Na taj način, korisnik može upisati do 15 likovi i još uvijek ostavlja prostora za null terminator. Idemo nastaviti štedjeti, Sastaviti, i pokrenuti ovaj program. Provjerite scanf2 dot kose crte scanf2. Idemo sada upisati niz poput Pozdrav, i mi smo se zahvalio za pozdraviti. Sad, tu je još uvijek problem. Ja samo upisali u bok, što je samo Pet znakova, plus 1 za nultu terminator. To nam ostavlja samo Potreba za šest bajtova. No, na žalost, samo mi dodijeljeno 16 ukupno. Dakle, ako korisnik zapravo tipovi u 16. likovi, ili 17, ili nekoliko stotina likovi, mi još uvijek ne ide ima dovoljno mjesta u memoriji za Ulaz korisnika. A u stvari, to je ono što čini dobivanje korisničkog unosa, tako Teško je u cjelini. I doista, to je razlog zašto smo provoditi get niz funkcija u prva mjesto u CS50 knjižnici - shvatiti kako se nositi s onima situacije u kojima korisnik upiše u više znakova nego što smo prvotno predviđeno. Iskreno, ne posve prepisivanjem ovaj program, nema čisto rješenje. Umjesto toga, ono što bismo morali učiniti je dobiti lik iz jednog korisnika na vrijeme, opet i opet. I u svakom trenutku, ako smo shvatili da smo iz sjećanja, morali bismo u ta točka vratiti i preraspodijeliti neki više memorije, kopiranje korisnika natrag ulaz od našeg prvog komad memorije u novo, veći komad memorije. I onda ponoviti postupak opet i opet dok korisnik radi pružanja njegov ili njezin ulaz.