>> ЗВУЧНИК 1: Ајде сега да ја поправите дека последната програма.
И овој пат, да експлицитно се распредели некои меморија во која
влез корисникот ќе се чуваат.
Да го стори тоа, ајде да брус во на таа прва линија на кодот каде што прогласена на
претходно да биде знак ѕвезда.
Овој пат, ајде повторно декларираат тоа како што следува -
знак на заградата 16, на пример, блиску заграда.
>> Со други зборови, да се изјасни на да нема повеќе да биде адреса на карактер,
туку низа на 16 карактери.
На овој начин, корисникот може да напишете во до 15 карактери и уште остави простор за
нула терминатор.
Ајде да се продолжи да се спаси, состави, и извршите оваа програма.
Направи scanf2 точка црта scanf2.
Ајде сега да напишете жиците како здраво, и ние сме се заблагодари за здраво.
>> Сега, има уште еден проблем.
Јас само ја внеле во здраво, што е само пет карактери, плус 1 за ништовни
терминатор.
Тоа ни остава со само потреба за шест бајти.
>> Но, за жал, ние само распределени вкупно 16.
Значи, ако на корисникот всушност тип во 16 знаци, или 17, или неколку стотици
карактери, ние сме сè уште нема да имаат доволно простор во меморијата за
влез корисникот.
И во Всушност, ова е она што го прави добивање на корисникот влез така
тешко воопшто.
И навистина, ова е причината зошто ние се спроведува ГЕТ низа функција во првата
место во CS50 библиотека -
да дознаам како да се справи со оние ситуации каде што корисникот видови во
повеќе ликови отколку што очекуваше на почетокот.
>> Искрено, без целосно препишување на оваа програма,
нема чиста решение.
Наместо тоа, она што ќе треба да направите е да се добие лик од корисникот една по една
време, повторно и повторно.
И на секоја точка, ако ние свесни сме надвор од меморија, ние ќе мора да на
тој момент се врати и пренамени некои повеќе меморија, копија на корисникот
претходна влез од нашата прва парче меморија во нова,
поголем парче на меморија.
А потоа се повторува тој процес повторно и повторно се додека корисникот е направено обезбедување
неговото или нејзиното внесување.