1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:01,960 >> Ræðumaður 1: Við skulum nú laga að síðasta program. 3 00:00:01,960 --> 00:00:04,920 Og að þessu sinni, við skulum sérstaklega úthluta sumir minni þar sem 4 00:00:04,920 --> 00:00:06,550 inntak notandans verður að vera geymdar. 5 00:00:06,550 --> 00:00:09,600 Að gera það, við skulum skerpa á sem fyrst lína af kóða þar sem við lýst s 6 00:00:09,600 --> 00:00:11,590 áður að vera bleikju stjörnu. 7 00:00:11,590 --> 00:00:14,210 Í þetta sinn, við skulum aftur lýsa það sem hér segir - 8 00:00:14,210 --> 00:00:19,380 char s festingin 16, til dæmis, loka krappi. 9 00:00:19,380 --> 00:00:23,690 >> Með öðrum orðum, við skulum lýsa s að enginn lengur vera heimilisfang staf 10 00:00:23,690 --> 00:00:26,610 heldur array af 16 stöfum. 11 00:00:26,610 --> 00:00:30,295 This vegur, the notandi geta tegund í allt að 15 stafir og enn yfirgefa herbergi fyrir 12 00:00:30,295 --> 00:00:31,570 A null Terminator. 13 00:00:31,570 --> 00:00:35,870 Við skulum halda áfram að spara, taka saman, og Run this program. 14 00:00:35,870 --> 00:00:40,770 Gerðu scanf2 punktur skástrik scanf2. 15 00:00:40,770 --> 00:00:45,100 Skulum nú gerð a band eins og halló, og við erum þakkaði fyrir Hello. 16 00:00:45,100 --> 00:00:46,440 >> Nú, það er enn vandamál. 17 00:00:46,440 --> 00:00:50,140 Ég gafst bara í halló, sem er aðeins fimm stafir, auk 1 fyrir null 18 00:00:50,140 --> 00:00:50,445 Ljúka. 19 00:00:50,445 --> 00:00:53,610 Það skilur okkur aðeins þörf fyrir sex bæti. 20 00:00:53,610 --> 00:00:56,740 >> En því miður, aðeins við úthlutað 16 í aðaleinkunn. 21 00:00:56,740 --> 00:01:01,305 Þannig að ef notandinn í raun gerðir í 16 persónur, eða 17, eða nokkur hundruð 22 00:01:01,305 --> 00:01:04,410 stafir, við erum samt ekki að fara að hafa nóg pláss í minni fyrir 23 00:01:04,410 --> 00:01:05,400 inntak notanda. 24 00:01:05,400 --> 00:01:07,750 Og í raun er þetta það sem gerir fá notandi inntak þannig 25 00:01:07,750 --> 00:01:08,940 erfitt almennt. 26 00:01:08,940 --> 00:01:12,270 Og reyndar, þetta er ástæða þess að við framkvæmd The Fá strengur í fyrsta 27 00:01:12,270 --> 00:01:13,900 stað í CS50 bókasafn - 28 00:01:13,900 --> 00:01:16,900 að reikna út hvernig á að höndla þá aðstæður þar sem notandinn slær í 29 00:01:16,900 --> 00:01:19,710 fleiri stafir en við upphaflega ráð fyrir. 30 00:01:19,710 --> 00:01:21,750 >> Frankly, án fullkomlega endurskrifa þetta forrit, 31 00:01:21,750 --> 00:01:23,290 það er engin hrein lausn. 32 00:01:23,290 --> 00:01:26,970 Frekar, það sem við myndum þurfa að gera er að fá eðli frá notanda einn á að 33 00:01:26,970 --> 00:01:28,860 tíma, aftur og aftur. 34 00:01:28,860 --> 00:01:32,510 Og á hverjum stað ef að við skiljum að við erum út af minni, vildi að við þurfum að minnsta 35 00:01:32,510 --> 00:01:36,450 að benda fara aftur inn og endurúthluta meira minni, afrita notanda 36 00:01:36,450 --> 00:01:39,400 Fyrri inntak frá fyrsta klumpur okkar minni í nýja, 37 00:01:39,400 --> 00:01:40,810 stærri klumpur af minni. 38 00:01:40,810 --> 00:01:44,610 Og þá endurtaka það ferli aftur og aftur þar til notandi er gert að veita 39 00:01:44,610 --> 00:01:45,860 inntak hans eða hennar. 40 00:01:45,860 --> 00:01:48,246