1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:01,960 >> SPEAKER 1: Pojdimo zdaj popraviti da je zadnji programu. 3 00:00:01,960 --> 00:00:04,920 In ta čas, pa je izrecno dodelila nekatere pomnilnika, v katerem 4 00:00:04,920 --> 00:00:06,550 vhod uporabnikov bodo shranjeni. 5 00:00:06,550 --> 00:00:09,600 To storite tako, dajmo Brus v naprej, da se najprej vrstica kode, kjer smo s prijavljeno 6 00:00:09,600 --> 00:00:11,590 prej, da je char zvezda. 7 00:00:11,590 --> 00:00:14,210 Tokrat gremo ponovno prijavijo je, kot sledi - 8 00:00:14,210 --> 00:00:19,380 znak je nosilec 16, na primer, zaklepaj. 9 00:00:19,380 --> 00:00:23,690 >> Z drugimi besedami, kaj je razglasila, da s ne biti daljši naslov znak, 10 00:00:23,690 --> 00:00:26,610 ampak niz 16 znakov. 11 00:00:26,610 --> 00:00:30,295 Na ta način lahko uporabnik vnesti v višini do 15 znakov in še vedno puščajo prostor za 12 00:00:30,295 --> 00:00:31,570 null terminator. 13 00:00:31,570 --> 00:00:35,870 Pa nadaljujmo do Save, Compile, in Zaženi ta program. 14 00:00:35,870 --> 00:00:40,770 Naredite scanf2 dot slash scanf2. 15 00:00:40,770 --> 00:00:45,100 Pojdimo zdaj vnesite niz kot zdravo, in smo zahvalil za zdravo. 16 00:00:45,100 --> 00:00:46,440 >> Zdaj pa je še vedno problem. 17 00:00:46,440 --> 00:00:50,140 Sem tipkal le v zdravo, ki je le pet znakov, plus 1 za nično 18 00:00:50,140 --> 00:00:50,445 terminator. 19 00:00:50,445 --> 00:00:53,610 To nam ostane le Potreba po šestih bajtov. 20 00:00:53,610 --> 00:00:56,740 >> Ampak na žalost smo le dodeljenih 16 skupaj. 21 00:00:56,740 --> 00:01:01,305 Torej, če uporabnik dejansko vrste v 16. znaki, ali 17, ali nekaj sto 22 00:01:01,305 --> 00:01:04,410 znaki, da smo še vedno ne bo imajo dovolj prostora v pomnilniku 23 00:01:04,410 --> 00:01:05,400 uporabnikov vnos. 24 00:01:05,400 --> 00:01:07,750 In v resnici, to je tisto, kar naredi pridobivanje uporabnik vložek, tako 25 00:01:07,750 --> 00:01:08,940 težko na splošno. 26 00:01:08,940 --> 00:01:12,270 In res, to je, zakaj smo uvedli Funkcija niz spravi v prvi 27 00:01:12,270 --> 00:01:13,900 mesto v knjižnici CS50 - 28 00:01:13,900 --> 00:01:16,900 da ugotovimo, kako ravnati s tistimi, situacije, kjer uporabnik vnese v 29 00:01:16,900 --> 00:01:19,710 več znakov, kot smo sprva pričakovano. 30 00:01:19,710 --> 00:01:21,750 >> Odkrito povedano, ne da bi v celoti reportaža ta program, 31 00:01:21,750 --> 00:01:23,290 ni čisto rešitev. 32 00:01:23,290 --> 00:01:26,970 Namesto, kaj bi morali storiti, je dobil lik iz enemu uporabniku na 33 00:01:26,970 --> 00:01:28,860 Čas, znova in znova. 34 00:01:28,860 --> 00:01:32,510 In na vsaki točki, če se zavedamo, da smo iz spomina, bi morali na 35 00:01:32,510 --> 00:01:36,450 da točka iti nazaj in prerazporedi nekaj več pomnilnika, kopirati uporabnikov 36 00:01:36,450 --> 00:01:39,400 Predhodna vhod iz našega prvega kos spomina v novo, 37 00:01:39,400 --> 00:01:40,810 večji kos pomnilnika. 38 00:01:40,810 --> 00:01:44,610 In potem še enkrat ponoviti, da je proces in Ponovno dokler uporabnik konča z zagotavljanjem 39 00:01:44,610 --> 00:01:45,860 njegov ali njen vhod. 40 00:01:45,860 --> 00:01:48,246