SPEAKER 1: Ni nun ripari ke lasta programo. Kaj ĉi tiu tempo, ni eksplicite destini iuj memoro en kiu la uzanto enigo estos stokitaj. Por tion fari, ni torni super tiu unua linio de kodo, kie ni deklaris s antaŭe esti char stelo. Tiu tempo, ni re-auxdigu ĝin jene - Char s krampo 16, ekzemple, proksime krampo. Alivorte, ni deklaras s al neniu plu adreson de gravulo, sed prefere tabelo de 16 signoj. Tiamaniere, la uzanto povas entajpi ĝis 15 karakteroj kaj ankoraŭ lasas spacon por nula finilo. Ni procedi al Konservu, kompili, kaj Kuru ĉi programo. Faru scanf2 dot oblikvo scanf2. Ni nun tajpas ĉenon kiel saluton, kaj ni dankis por la saluton. Nun, estas ankoraŭ problemo. Mi nur tajpis en saluton, kiu estas nur kvin karakteroj, plus 1 por la nula finilo. Ĝi lasas nin kun nur bezono por ses bitokoj. Sed bedaŭrinde, ni nur asignitaj 16 entute. Do, se la uzanto reale tipoj en 16 karakteroj, aŭ 17, aŭ plurcent karakteroj, ni ankoraŭ ne tuj havi sufiĉan spacon en memoro por la uzanto enigon. Kaj fakte, ĉi tiu estas kion faras atingi uzanto enigo tiom malfacila en ĝenerala. Kaj efektive, jen kial ni implementado la Get kordo funkcio en la unua lokon en la CS50 biblioteko - elkompreni kiel manipuli tiujn situacioj kie la uzanto tajpas en pli signoj ol ni komence antaŭvidita. Sincere, sen komplete reverkada tiun programon, ne estas pura solvo. Pli ĝuste, kion ni devus fari estas akiri karaktero de la uzanto unu ĉe tempo, denove kaj denove. Kaj je ĉiu punkto, se ni rimarkas ke ni estas el la memoro, ni devus, je tiu punkto reiri en kaj reallocate iuj pli da memoro, kopii la uzanto antaŭa enigo de niaj unuaj chunk de memoro en la nova, grandan eron de memoro. Kaj poste ripeti ke procezo denove kaj denove ĝis la uzanto estas farita havigante lia aŭ ŝia enigo.