SPEAKER 1: Lad os nu ordne det sidste program. Og denne gang, lad os eksplicit tildele en del af hukommelsen, hvori brugerens input vil blive gemt. For at gøre det, så lad os slibe på det første linje kode, hvor vi erklærede s tidligere at være en char stjerne. Denne gang, lad os re-erklære det således - char s konsollen 16, for eksempel, tæt beslag. Med andre ord, lad os erklære s til ingen længere være en adresse af en karakter, men snarere en vifte af 16 tegn. På denne måde kan brugeren indtaste op til 15 tegn og stadig give plads til et null-terminator. Lad os gå videre til Gem, sammenstille, og Kør dette program. Gør scanf2 dot skråstreg scanf2. Lad os nu skrive en streng som hej, og vi takkede for hej. Nu er der stadig et problem. Jeg kun har skrevet i hej, hvilket kun er fem tegn, plus 1 til null terminatoren. Det efterlader os med kun et behov for seks bytes. Men desværre kun vi, tildelt 16 i alt. Så hvis brugeren rent faktisk typer i 16 tegn eller 17 eller flere hundrede tegn, er vi stadig ikke kommer til at har nok plads i hukommelsen til brugerens input. Og i virkeligheden er det, hvad der gør få input fra brugeren, så vanskeligt i almindelighed. Og ja, det er derfor vi implementeret get string-funktionen i den første sted i CS50 bibliotek - at finde ud af, hvordan man håndterer dem, situationer, hvor brugeren skriver i flere tegn, end vi oprindeligt forventet. Helt ærligt, uden helt omskrive programmet, der er ingen ren løsning. Snarere, hvad vi ville have at gøre er at få en karakter fra brugeren én ad tid, igen og igen. Og på hvert punkt, hvis vi indser, at vi er tør for hukommelse, ville vi nødt til på dette punkt gå tilbage og omfordele nogle mere hukommelse ved at kopiere brugerens tidligere input fra vores første bid hukommelse i den nye, større luns af hukommelse. Og derefter gentage denne proces igen og igen, indtil brugeren er færdig give hans eller hendes input.