1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:01,960 >> ЗВУЧНИК 1: Ајде сега да ја поправите дека последната програма. 3 00:00:01,960 --> 00:00:04,920 И овој пат, да експлицитно се распредели некои меморија во која 4 00:00:04,920 --> 00:00:06,550 влез корисникот ќе се чуваат. 5 00:00:06,550 --> 00:00:09,600 Да го стори тоа, ајде да брус во на таа прва линија на кодот каде што прогласена на 6 00:00:09,600 --> 00:00:11,590 претходно да биде знак ѕвезда. 7 00:00:11,590 --> 00:00:14,210 Овој пат, ајде повторно декларираат тоа како што следува - 8 00:00:14,210 --> 00:00:19,380 знак на заградата 16, на пример, блиску заграда. 9 00:00:19,380 --> 00:00:23,690 >> Со други зборови, да се изјасни на да нема повеќе да биде адреса на карактер, 10 00:00:23,690 --> 00:00:26,610 туку низа на 16 карактери. 11 00:00:26,610 --> 00:00:30,295 На овој начин, корисникот може да напишете во до 15 карактери и уште остави простор за 12 00:00:30,295 --> 00:00:31,570 нула терминатор. 13 00:00:31,570 --> 00:00:35,870 Ајде да се продолжи да се спаси, состави, и извршите оваа програма. 14 00:00:35,870 --> 00:00:40,770 Направи scanf2 точка црта scanf2. 15 00:00:40,770 --> 00:00:45,100 Ајде сега да напишете жиците како здраво, и ние сме се заблагодари за здраво. 16 00:00:45,100 --> 00:00:46,440 >> Сега, има уште еден проблем. 17 00:00:46,440 --> 00:00:50,140 Јас само ја внеле во здраво, што е само пет карактери, плус 1 за ништовни 18 00:00:50,140 --> 00:00:50,445 терминатор. 19 00:00:50,445 --> 00:00:53,610 Тоа ни остава со само потреба за шест бајти. 20 00:00:53,610 --> 00:00:56,740 >> Но, за жал, ние само распределени вкупно 16. 21 00:00:56,740 --> 00:01:01,305 Значи, ако на корисникот всушност тип во 16 знаци, или 17, или неколку стотици 22 00:01:01,305 --> 00:01:04,410 карактери, ние сме сè уште нема да имаат доволно простор во меморијата за 23 00:01:04,410 --> 00:01:05,400 влез корисникот. 24 00:01:05,400 --> 00:01:07,750 И во Всушност, ова е она што го прави добивање на корисникот влез така 25 00:01:07,750 --> 00:01:08,940 тешко воопшто. 26 00:01:08,940 --> 00:01:12,270 И навистина, ова е причината зошто ние се спроведува ГЕТ низа функција во првата 27 00:01:12,270 --> 00:01:13,900 место во CS50 библиотека - 28 00:01:13,900 --> 00:01:16,900 да дознаам како да се справи со оние ситуации каде што корисникот видови во 29 00:01:16,900 --> 00:01:19,710 повеќе ликови отколку што очекуваше на почетокот. 30 00:01:19,710 --> 00:01:21,750 >> Искрено, без целосно препишување на оваа програма, 31 00:01:21,750 --> 00:01:23,290 нема чиста решение. 32 00:01:23,290 --> 00:01:26,970 Наместо тоа, она што ќе треба да направите е да се добие лик од корисникот една по една 33 00:01:26,970 --> 00:01:28,860 време, повторно и повторно. 34 00:01:28,860 --> 00:01:32,510 И на секоја точка, ако ние свесни сме надвор од меморија, ние ќе мора да на 35 00:01:32,510 --> 00:01:36,450 тој момент се врати и пренамени некои повеќе меморија, копија на корисникот 36 00:01:36,450 --> 00:01:39,400 претходна влез од нашата прва парче меморија во нова, 37 00:01:39,400 --> 00:01:40,810 поголем парче на меморија. 38 00:01:40,810 --> 00:01:44,610 А потоа се повторува тој процес повторно и повторно се додека корисникот е направено обезбедување 39 00:01:44,610 --> 00:01:45,860 неговото или нејзиното внесување. 40 00:01:45,860 --> 00:01:48,246