SPEAKER 1: Oletame nüüd määrata et viimane programm. Ja seekord, lähme selgelt eraldada mõned mälu, milles kasutaja sisend salvestatakse. Selleks, lähme lihvida, et esimene koodirida kus me kuulutasime s eelnevalt olema char star. Seekord lähme uuesti deklareerima see järgmiselt - paalia s osad 16, näiteks sulg. Teisisõnu, olgem tunnistada s mitte enam aadressi iseloomu, vaid rida 16 tähemärki. Nii, kasutaja saab sisestada kuni 15 märgid ja jätab veel ruumi null terminaator. Lähme edasi säästa, koostada, ja kasutada seda programmi. Tee scanf2 dot kaldkriipsuga scanf2. Olgem nüüd kirjuta string nagu tere, ja me tänas tere. Nüüd, seal on veel probleem. Ma ainult kirjutada tere, mis on ainult viis märki, pluss 1 null terminaator. See jätab meile ainult vajadus kuue baiti. Aga kahjuks ainult eraldatud 16 kokku. Nii et kui kasutaja tegelikult liigid 16 märki või 17, või mitusada tegelased, et me ikka ei hakka on piisavalt ruumi mälus kasutaja sisend. Ja tegelikult, see teebki saada kasutaja sisend nii raske. Ja tõepoolest, see on põhjus, miks me ellu get string funktsioon esimeses koht CS50 raamatukogu - nuputada, kuidas käsitleda neid olukordades, kus kasutaja liigid rohkem märke kui me esialgu arvati. Ausalt, ilma täielikult ümberkirjutamist käesoleva programmi pole puhas lahendus. Pigem me peame tegema, on saada tegelasele kasutaja ükshaaval aeg, ikka ja jälle. Ja igas punktis, kui me mõistame, et me oleme mälu, oleks meil juures Sel hetkel tagasi minna ja ümber mõned rohkem mälu, kopeerida kasutaja eelmine sisend meie esimese tüki Mälu, uus, suurema tüki mälu. Ja korrake seda protsessi uuesti ja uuesti, kuni kasutaja on teinud pakkuda tema panus.