>> ПРЕДСЕДНИК 1: Идемо одмах поправити да последњи програма.
И овај пут, хајде да експлицитно доделити неки меморије у којој
улаз корисника ће бити сачувани.
Да бисте то урадили, хајде да брусити на то прво линија кода где смо декларисане С
претходно да буде знак звезда.
Овај пут, хајде да поново прогласи то на следећи начин -
цхар с носач 16, на пример, затвори заграда.
>> Другим речима, да прогласи с да не више бити адреса карактера,
већ низ 16 карактера.
На овај начин, корисник може укуцати до 15 карактера и даље оставља простор за
нулл терминатор.
Хајде да наставимо до Саве, компилации, и покренете овај програм.
Направите сцанф2 тачка уписали косу сцанф2.
Хајде да сада унесите стринг као здраво, и ми смо се захвалио на Хелло.
>> Сада, још увек постоји проблем.
Ја откуцао само у здраво, што је само пет знакова, плус 1 за нулл
терминатор.
То нас оставља са само потреба за шест бајтова.
>> Али, нажалост, само ми издвојила 16 укупно.
Дакле, ако корисник стварно врсте у 16 карактера, или 17, или неколико стотина
карактера, ми и даље не иде у имати довољно простора у меморији за
корисника улаз.
А у ствари, то је оно што чини добијање кориснички унос тако
тешко уопште.
И заиста, то је разлог зашто смо реализовали функција стринг Улази у први
место у библиотеци ЦС50 -
да схватим како да рукује оне ситуације у којима се корисник укуцава
више знакова него што смо првобитно предвиђено.
>> Искрено, без потпуно преписивање овог програма,
нема чист решење.
Уместо тога, оно што би требало да урадите је да се лик из корисничког оног у
време, изнова и изнова.
И у сваком тренутку, ако схватимо да смо из меморије, морали бисмо да на
да се вратимо на тачку и прерасподели неке више меморије, копирајте корисник је
претходна улаз из нашег првог комад меморије у нови,
већи комад меморије.
А онда опет понављам тај процес и поново све док корисник врши пружање
његов или њен улаз.