SPEAKER 1: Katsotaanpa nyt korjata että viime ohjelmassa. Ja tällä kertaa, nyt nimenomaisesti myöntää Joissakin muistin, johon käyttäjän syötteen tallennetaan. Voit tehdä niin, katsotaanpa hioa, että ensin koodiriviä jossa julisti s aiemmin olla char tähti. Tällä kertaa, nyt uudelleen julistaa sen seuraavasti - char s kiinnike 16, esimerkiksi loppusulkumerkki. Toisin sanoen, nyt julistaa s mitään enää osoitteen luonne, vaan pikemminkin joukko 16 merkkiä. Näin käyttäjä voi kirjoittaa jopa 15 merkkiä ja silti jättää tilaa null terminaattori. Katsotaanpa siirtyä Tallenna, kääntää, ja Suorita ohjelma. Tee scanf2 dot slash scanf2. Katsotaanpa nyt kirjoitat merkkijonon kuten hello, ja olemme kiitti hei. Nyt siellä on vielä ongelma. Olen vain kirjoittanut hei, mikä on vain viisi merkkiä, plus 1 null terminaattori. Se jättää meille vain tarvitaan kuusi tavua. Mutta valitettavasti me vain jaetaan 16 yhteensä. Joten jos käyttäjä todella nimikkeet 16 merkkiä, tai 17, tai useita satoja merkkiä, olemme yhä aio on tarpeeksi tilaa muistiin käyttäjän syötteen. Ja itse asiassa, tämä on mitä tekee saada käyttäjä syöttää niin vaikea yleensä. Ja todellakin, siksi otimme get merkkijono ensimmäisessä paikka CS50 kirjastossa - selvittää, miten käsitellä näitä tilanteissa, joissa käyttäjä on enemmän merkkejä kuin me ennakoitua. Suoraan sanottuna, ilman täysin uudelleenkirjoitus ohjelman ei ole puhdas ratkaisua. Pikemminkin, mitä pitäisi tehdä, on saada hahmo käyttäjä yksitellen aikaa, uudestaan ​​ja uudestaan. Ja jokaisessa vaiheessa, jos ymmärrämme, olemme muisti, olisimme at Siinä vaiheessa palata takaisin ja kohdentaa lisää muistia, kopioida käyttäjän edellinen panos ensimmäinen kimpale muistia uuteen, suurempi murikka muistia. Ja toista sitten, että prosessi uudestaan ​​ja uudelleen, kunnes käyttäjä on valmis tarjoamaan hänen tulo.