>> Ræðumaður 1: Við skulum nú laga að síðasta program.
Og að þessu sinni, við skulum sérstaklega úthluta sumir minni þar sem
inntak notandans verður að vera geymdar.
Að gera það, við skulum skerpa á sem fyrst lína af kóða þar sem við lýst s
áður að vera bleikju stjörnu.
Í þetta sinn, við skulum aftur lýsa það sem hér segir -
char s festingin 16, til dæmis, loka krappi.
>> Með öðrum orðum, við skulum lýsa s að enginn lengur vera heimilisfang staf
heldur array af 16 stöfum.
This vegur, the notandi geta tegund í allt að 15 stafir og enn yfirgefa herbergi fyrir
A null Terminator.
Við skulum halda áfram að spara, taka saman, og Run this program.
Gerðu scanf2 punktur skástrik scanf2.
Skulum nú gerð a band eins og halló, og við erum þakkaði fyrir Hello.
>> Nú, það er enn vandamál.
Ég gafst bara í halló, sem er aðeins fimm stafir, auk 1 fyrir null
Ljúka.
Það skilur okkur aðeins þörf fyrir sex bæti.
>> En því miður, aðeins við úthlutað 16 í aðaleinkunn.
Þannig að ef notandinn í raun gerðir í 16 persónur, eða 17, eða nokkur hundruð
stafir, við erum samt ekki að fara að hafa nóg pláss í minni fyrir
inntak notanda.
Og í raun er þetta það sem gerir fá notandi inntak þannig
erfitt almennt.
Og reyndar, þetta er ástæða þess að við framkvæmd The Fá strengur í fyrsta
stað í CS50 bókasafn -
að reikna út hvernig á að höndla þá aðstæður þar sem notandinn slær í
fleiri stafir en við upphaflega ráð fyrir.
>> Frankly, án fullkomlega endurskrifa þetta forrit,
það er engin hrein lausn.
Frekar, það sem við myndum þurfa að gera er að fá eðli frá notanda einn á að
tíma, aftur og aftur.
Og á hverjum stað ef að við skiljum að við erum út af minni, vildi að við þurfum að minnsta
að benda fara aftur inn og endurúthluta meira minni, afrita notanda
Fyrri inntak frá fyrsta klumpur okkar minni í nýja,
stærri klumpur af minni.
Og þá endurtaka það ferli aftur og aftur þar til notandi er gert að veita
inntak hans eða hennar.