Выступоўца 1: Давайце цяпер выправіць што апошняя праграма. І на гэты раз, давайце выразна вылучыць частка памяці, у якой ўваход карыстальніка будзе захоўвацца. Каб зрабіць гэта, давайце адточваюць на што ў першую радок кода, дзе мы абвясцілі сек раней, каб быць знак зоркі. На гэты раз, давайце паўторна абвесьціць гэта наступным чынам - сімвал S кранштэйны 16, напрыклад, якая зачыняе дужка. Іншымі словамі, давайце не абвясціць з да ня больш быць адрас, па сваім характары, а масіў з 16 знакаў. Такім чынам, карыстальнік можа ўвесці да 15 знакаў і пакінуць месца для нулявы тэрмінатар. Пяройдзем да Save, кампіляцыі, і Запусціць праграму. Зрабіць scanf2 кропка слэш scanf2. Давайце зараз увядзіце радок, як прывітанне, і мы падзякаваў за прывітанне. Зараз, ёсць яшчэ праблема. Я толькі набраў ў прывітанне, які знаходзіцца ўсяго ў пяць знакаў, плюс 1 для нулявы тэрмінатар. Гэта пакідае нас з толькі патрэба ў шэсць байтаў. Але, на жаль, мы толькі выдзелена 16 у агульнай складанасці. Так што, калі на самай справе карыстальнікам тыпы ў 16 знакаў, або 17, або некалькі сотняў сімвалы, мы ўсё яшчэ не збіраецца ёсць досыць месцы ў памяці для ўваход карыстальніка. І на самай справе, гэта тое, што робіць атрымліваць карыстацкі ўвод так цяжка наогул. І сапраўды, менавіта таму мы ўкаранілі функцыя радок трапіць у першую месца ў бібліятэцы CS50 - каб высветліць, як звяртацца з тымі, сітуацыі, калі карыстальнік ўводзіць у больш сімвалаў, чым мы першапачаткова меркавалася. Шчыра кажучы, без поўнага перапісвання гэтую праграму, няма чыстае рашэнне. Хутчэй, мы павінны былі б зрабіць, гэта атрымаць персанаж з карыстацкага адзін у Час, зноў і зноў. І ў кожнай кропцы, калі мы разумеем, што мы з памяці, мы павінны былі б у што кропка вярнуцца і пераразмеркаваць яшчэ крыху памяці, скапіруйце карыстальніка папярэдняя ўваход з нашага першага фрагмента памяці ў новы, больш кавалак памяці. А потым паўтарыць гэты працэс зноў і зноў, пакуль карыстач не робіцца забеспячэнне яго ці яе ўвод.