1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:01,960 >> SPEAKER 1: Ni nun ripari ke lasta programo. 3 00:00:01,960 --> 00:00:04,920 Kaj ĉi tiu tempo, ni eksplicite destini iuj memoro en kiu la 4 00:00:04,920 --> 00:00:06,550 uzanto enigo estos stokitaj. 5 00:00:06,550 --> 00:00:09,600 Por tion fari, ni torni super tiu unua linio de kodo, kie ni deklaris s 6 00:00:09,600 --> 00:00:11,590 antaŭe esti char stelo. 7 00:00:11,590 --> 00:00:14,210 Tiu tempo, ni re-auxdigu ĝin jene - 8 00:00:14,210 --> 00:00:19,380 Char s krampo 16, ekzemple, proksime krampo. 9 00:00:19,380 --> 00:00:23,690 >> Alivorte, ni deklaras s al neniu plu adreson de gravulo, 10 00:00:23,690 --> 00:00:26,610 sed prefere tabelo de 16 signoj. 11 00:00:26,610 --> 00:00:30,295 Tiamaniere, la uzanto povas entajpi ĝis 15 karakteroj kaj ankoraŭ lasas spacon por 12 00:00:30,295 --> 00:00:31,570 nula finilo. 13 00:00:31,570 --> 00:00:35,870 Ni procedi al Konservu, kompili, kaj Kuru ĉi programo. 14 00:00:35,870 --> 00:00:40,770 Faru scanf2 dot oblikvo scanf2. 15 00:00:40,770 --> 00:00:45,100 Ni nun tajpas ĉenon kiel saluton, kaj ni dankis por la saluton. 16 00:00:45,100 --> 00:00:46,440 >> Nun, estas ankoraŭ problemo. 17 00:00:46,440 --> 00:00:50,140 Mi nur tajpis en saluton, kiu estas nur kvin karakteroj, plus 1 por la nula 18 00:00:50,140 --> 00:00:50,445 finilo. 19 00:00:50,445 --> 00:00:53,610 Ĝi lasas nin kun nur bezono por ses bitokoj. 20 00:00:53,610 --> 00:00:56,740 >> Sed bedaŭrinde, ni nur asignitaj 16 entute. 21 00:00:56,740 --> 00:01:01,305 Do, se la uzanto reale tipoj en 16 karakteroj, aŭ 17, aŭ plurcent 22 00:01:01,305 --> 00:01:04,410 karakteroj, ni ankoraŭ ne tuj havi sufiĉan spacon en memoro por la 23 00:01:04,410 --> 00:01:05,400 uzanto enigon. 24 00:01:05,400 --> 00:01:07,750 Kaj fakte, ĉi tiu estas kion faras atingi uzanto enigo tiom 25 00:01:07,750 --> 00:01:08,940 malfacila en ĝenerala. 26 00:01:08,940 --> 00:01:12,270 Kaj efektive, jen kial ni implementado la Get kordo funkcio en la unua 27 00:01:12,270 --> 00:01:13,900 lokon en la CS50 biblioteko - 28 00:01:13,900 --> 00:01:16,900 elkompreni kiel manipuli tiujn situacioj kie la uzanto tajpas en 29 00:01:16,900 --> 00:01:19,710 pli signoj ol ni komence antaŭvidita. 30 00:01:19,710 --> 00:01:21,750 >> Sincere, sen komplete reverkada tiun programon, 31 00:01:21,750 --> 00:01:23,290 ne estas pura solvo. 32 00:01:23,290 --> 00:01:26,970 Pli ĝuste, kion ni devus fari estas akiri karaktero de la uzanto unu ĉe 33 00:01:26,970 --> 00:01:28,860 tempo, denove kaj denove. 34 00:01:28,860 --> 00:01:32,510 Kaj je ĉiu punkto, se ni rimarkas ke ni estas el la memoro, ni devus, je 35 00:01:32,510 --> 00:01:36,450 tiu punkto reiri en kaj reallocate iuj pli da memoro, kopii la uzanto 36 00:01:36,450 --> 00:01:39,400 antaŭa enigo de niaj unuaj chunk de memoro en la nova, 37 00:01:39,400 --> 00:01:40,810 grandan eron de memoro. 38 00:01:40,810 --> 00:01:44,610 Kaj poste ripeti ke procezo denove kaj denove ĝis la uzanto estas farita havigante 39 00:01:44,610 --> 00:01:45,860 lia aŭ ŝia enigo. 40 00:01:45,860 --> 00:01:48,246