1 00:00:00,000 --> 00:00:03,381 >> [MIZIK jwe] 2 00:00:03,381 --> 00:00:10,626 3 00:00:10,626 --> 00:00:11,610 >> [VIDEO lèktur] 4 00:00:11,610 --> 00:00:13,640 >> -Li Te bay manti. 5 00:00:13,640 --> 00:00:14,380 >> -About Ki sa? 6 00:00:14,380 --> 00:00:17,182 >> -M pa konnen. 7 00:00:17,182 --> 00:00:19,990 >> -Se Konsa sa nou konnen? 8 00:00:19,990 --> 00:00:23,145 >> -ki Nan 9:15, Ray Santoya te nan ATM lan. 9 00:00:23,145 --> 00:00:23,644 -Yeah. 10 00:00:23,644 --> 00:00:27,030 Se konsa, kesyon an se, ki sa te li fè nan 9:16? 11 00:00:27,030 --> 00:00:29,720 >> -Shooting 9 milimèt a nan yon bagay. 12 00:00:29,720 --> 00:00:31,540 Petèt li te wè tirè pwofesyonèl la. 13 00:00:31,540 --> 00:00:33,412 >> -OR Te ap travay avè l '. 14 00:00:33,412 --> 00:00:34,340 >> -Wait. 15 00:00:34,340 --> 00:00:36,200 Tounen yon sèl. 16 00:00:36,200 --> 00:00:36,975 >> -Ki Ou wè? 17 00:00:36,975 --> 00:00:44,400 18 00:00:44,400 --> 00:00:47,805 >> -Bring Figi l 'moute ekran plen. 19 00:00:47,805 --> 00:00:48,680 >> Linèt -His. 20 00:00:48,680 --> 00:00:50,060 >> -Pa Nan yon refleksyon. 21 00:00:50,060 --> 00:01:00,455 22 00:01:00,455 --> 00:01:02,280 >> -Li La ekip la bezbòl Nuevitas. 23 00:01:02,280 --> 00:01:03,110 Sa a logo yo. 24 00:01:03,110 --> 00:01:05,820 >> -epi Li te pale ak moun ki va la mete ki levit. 25 00:01:05,820 --> 00:01:06,670 >> [END lèktur] 26 00:01:06,670 --> 00:01:07,628 >> DAVID Malan: Tout dwa. 27 00:01:07,628 --> 00:01:11,210 Sa a se CS50 ak sa a se yon ti jan plis a [fèbl] ak kote ou ap 28 00:01:11,210 --> 00:01:12,890 diletantism ak pwoblèm mete kat. 29 00:01:12,890 --> 00:01:16,606 Jodi a nou kòmanse gade yon ti kras plis pwofondman nan sa yo bagay sa yo rele endikasyon, 30 00:01:16,606 --> 00:01:18,480 ki menm si li nan yon sijè trè Esoteric, 31 00:01:18,480 --> 00:01:20,813 li vire soti ke li k ap pase yo dwe vle di a pa ki nou 32 00:01:20,813 --> 00:01:24,320 ka kòmanse bati ak rasanble pwogram pi plis sofistike. 33 00:01:24,320 --> 00:01:28,150 Men, nou te fè li nan Mèkredi dènye pa fason pou kèk claymation premye. 34 00:01:28,150 --> 00:01:30,190 Se konsa, sa a, sonje, se Binky epi nou itilize l ' 35 00:01:30,190 --> 00:01:33,148 pran yon gade nan yon pwogram ki pa t 'reyèlman fè anyen ki enteresan, 36 00:01:33,148 --> 00:01:34,950 men li te fè revele yon pwoblèm kèk. 37 00:01:34,950 --> 00:01:38,570 Se konsa, yo kòmanse jodi a, poukisa pa nou mache byen vit nan yon kèk nan etap sa yo, 38 00:01:38,570 --> 00:01:41,920 eseye distile nan tèm imen an ekzakteman ki sa k ap pase sou isit la 39 00:01:41,920 --> 00:01:45,410 e poukisa sa a se move, ak Lè sa a deplase sou ak aktyèlman kòmanse bati yon bagay 40 00:01:45,410 --> 00:01:46,309 ak teknik sa a? 41 00:01:46,309 --> 00:01:48,350 Se konsa, sa yo te premye a de liy nan pwogram sa a 42 00:01:48,350 --> 00:01:51,340 ak an tèm pwofàn la, ki sa yo se de liy sa yo ap fè? 43 00:01:51,340 --> 00:01:55,600 Yon moun ki nan rezonab konfòtab ak sa k ap deklare sou ekran an? 44 00:01:55,600 --> 00:01:58,340 45 00:01:58,340 --> 00:02:00,120 Ki sa ki yo se de liy sa yo ap fè? 46 00:02:00,120 --> 00:02:02,070 Li pa tout sa ki diferan de semèn yon sèl, 47 00:02:02,070 --> 00:02:03,611 men gen kèk nouvo senbòl espesyal. 48 00:02:03,611 --> 00:02:04,152 Yeah? 49 00:02:04,152 --> 00:02:05,628 Retounen a. 50 00:02:05,628 --> 00:02:07,092 >> ODYANS: Deklare endikasyon? 51 00:02:07,092 --> 00:02:08,050 DAVID Malan: Di ankò? 52 00:02:08,050 --> 00:02:08,860 ODYANS: Deklare endikasyon? 53 00:02:08,860 --> 00:02:11,776 DAVID Malan: Deklare endikasyon ak se pou yo rafine li yon ti jan ti kras pi plis. 54 00:02:11,776 --> 00:02:14,050 ODYANS: [fèbl] adrès x ak Lè sa a y. 55 00:02:14,050 --> 00:02:15,300 DAVID Malan: Lè sa a, adrese. 56 00:02:15,300 --> 00:02:18,550 Se konsa, espesyalman sa n ap fè se nou ap deklare de varyab. 57 00:02:18,550 --> 00:02:21,252 Sa yo varyab, menm si, yo ale yo dwe nan kalite zetwal int, ki 58 00:02:21,252 --> 00:02:23,210 plis espesyalman vle di yo pral nan magazen 59 00:02:23,210 --> 00:02:26,450 adrès ki nan yon int, respektivman, x ak y. 60 00:02:26,450 --> 00:02:27,660 Koulye a, èske genyen kèk valè? 61 00:02:27,660 --> 00:02:32,621 Èske gen nenpòt adrès aktyèl nan sa yo de varyab nan pwen sa a nan tan? 62 00:02:32,621 --> 00:02:33,120 No 63 00:02:33,120 --> 00:02:35,030 Li nan jis sa yo rele valè fatra. 64 00:02:35,030 --> 00:02:38,120 Si ou pa aktyèlman bay yon varyab, kèlkeswa sa te nan RAM 65 00:02:38,120 --> 00:02:42,224 deja ki pral ranpli ak zewo ak moun yo tou de nan sa yo varyab. 66 00:02:42,224 --> 00:02:44,140 Men, nou poko konnen ki sa yo ye e ke sa a 67 00:02:44,140 --> 00:02:47,060 pral fè kle poukisa Binky pèdi tèt li semèn pase a. 68 00:02:47,060 --> 00:02:49,980 >> Se konsa, sa a te claymation nan enkarnasyon nan sa a 69 00:02:49,980 --> 00:02:53,580 kijan ou gen jis de varyab, ti kras moso sikilè nan ajil, 70 00:02:53,580 --> 00:02:57,330 ki ka magazen varyab, men kòm vlope moute flèch yo sijere, 71 00:02:57,330 --> 00:03:00,640 yo ap pa aktyèlman montre nan nenpòt kote li te ye se pou chak. 72 00:03:00,640 --> 00:03:03,670 Se sak fè nou te gen liy sa a, ak sa a te nouvo semèn pase a, malok pou memwa 73 00:03:03,670 --> 00:03:07,130 alokasyon, ki se jis yon fason anpenpan a di sistèm nan fonksyone, Linux 74 00:03:07,130 --> 00:03:09,750 oswa Mac OS oswa Windows, hey, ban m 'kèk memwa, 75 00:03:09,750 --> 00:03:11,780 ak tout sa ou dwe di sistèm nan fonksyone 76 00:03:11,780 --> 00:03:14,699 se sa ki lè mande li pou memwa. 77 00:03:14,699 --> 00:03:16,990 Li nan pa ale nan pran swen sa w ap ale nan fè ak li, 78 00:03:16,990 --> 00:03:19,786 men ou bezwen di opere nan sistèm sa pa fason pou malok. 79 00:03:19,786 --> 00:03:20,286 Yeah? 80 00:03:20,286 --> 00:03:21,078 >> ODYANS: Ki kantite? 81 00:03:21,078 --> 00:03:21,994 DAVID Malan: Ki kantite? 82 00:03:21,994 --> 00:03:25,280 Ki kantite nan bytes, e konsa, sa a, ankò, yon egzanp parvenus, se jis di, 83 00:03:25,280 --> 00:03:27,360 ban m 'gwosè a nan yon int. 84 00:03:27,360 --> 00:03:30,550 Koulye a, gwosè a nan yon int se kat bytes oswa 32 miyèt moso. 85 00:03:30,550 --> 00:03:32,850 Se konsa, sa a se jis yon fason pou di, hey, sistèm opere, 86 00:03:32,850 --> 00:03:37,290 ban m 'kat bytes nan memwa ke mwen ka itilize a jete m 'yo, 87 00:03:37,290 --> 00:03:40,560 ak espesifikman, ki sa fè malok retounen ki gen rapò 88 00:03:40,560 --> 00:03:41,795 ak sa yo ki ti moso nan kat bytes? 89 00:03:41,795 --> 00:03:44,110 90 00:03:44,110 --> 00:03:44,860 ODYANS: Adrès? 91 00:03:44,860 --> 00:03:45,901 DAVID Malan: postal lan. 92 00:03:45,901 --> 00:03:47,580 Postal la nan ki moso nan kat bytes. 93 00:03:47,580 --> 00:03:48,190 Egzakteman. 94 00:03:48,190 --> 00:03:51,430 Se konsa, sa a, se sa k ap estoke finalman nan x ak Se poutèt sa nou pa fè sa vrèman 95 00:03:51,430 --> 00:03:55,240 pran swen sa ki kantite ki adrès se, si li nan ox1 oswa ox2 96 00:03:55,240 --> 00:03:57,110 oswa kèk adrès skre ekzadesimal. 97 00:03:57,110 --> 00:03:59,850 Nou jis pran swen pictorially ki varyab sa x se kounye a 98 00:03:59,850 --> 00:04:01,630 montre nan ki ti moso nan memwa. 99 00:04:01,630 --> 00:04:05,570 Se konsa, flèch la reprezante yon konsèy, oswa plis espesyalman, yon adrès memwa. 100 00:04:05,570 --> 00:04:09,120 Men, ankò, nou pa tipikman pran swen sa ki sa yo adrès aktyèl ye. 101 00:04:09,120 --> 00:04:11,780 Koulye a, liy sa a di sa ki nan tèm pwofàn la? 102 00:04:11,780 --> 00:04:14,330 Star x vin 42 virgules. 103 00:04:14,330 --> 00:04:17,390 Ki sa sa vle di? 104 00:04:17,390 --> 00:04:18,200 Ou vle ale? 105 00:04:18,200 --> 00:04:20,102 Pa grate kou ou. 106 00:04:20,102 --> 00:04:22,360 >> ODYANS: postal la nan x se nan 42 a. 107 00:04:22,360 --> 00:04:24,300 >> DAVID Malan: postal la nan x se nan 42. 108 00:04:24,300 --> 00:04:25,190 Pa byen. 109 00:04:25,190 --> 00:04:28,485 Se konsa, fèmen, men li pa byen, paske gen nan zetwal la ki nan prefiks sa a x. 110 00:04:28,485 --> 00:04:29,860 Se konsa, nou bezwen ajiste yon ti kras. 111 00:04:29,860 --> 00:04:31,032 Yeah? 112 00:04:31,032 --> 00:04:36,044 >> ODYANS: Valè a ki nan konsèy x se lonje dwèt nan se 42. 113 00:04:36,044 --> 00:04:36,710 DAVID Malan: OK. 114 00:04:36,710 --> 00:04:40,840 Valè a ki konsèy x la se montre nan, se pou yo di, pral 42, 115 00:04:40,840 --> 00:04:44,165 oubyen yo mete li yon lòt fason, zetwal la x di, ale nan tou sa adrès 116 00:04:44,165 --> 00:04:48,340 se nan x, si li nan 1 Oxford Ri oswa 33 Oxford Street 117 00:04:48,340 --> 00:04:51,850 oswa ox1 oswa ox33, kèlkeswa sa ki nimerik adrès se, 118 00:04:51,850 --> 00:04:54,380 etwal x se dereferencing nan x. 119 00:04:54,380 --> 00:04:57,297 Se konsa, ale nan adrès sa ki epi lè sa a mete nimewo a 42 la. 120 00:04:57,297 --> 00:04:59,380 Se konsa, ki ta pwal genyen yon ekivalan fason pou li di sa. 121 00:04:59,380 --> 00:05:01,860 Se konsa, sa a, se tout bon ak Lè sa a nou ta reprezante foto a 122 00:05:01,860 --> 00:05:05,370 jan sa a kote nou te ajoute 42 nan ak sa yo ki ti moso nan kat 123 00:05:05,370 --> 00:05:09,370 bytes sou bò men dwat-ou, men liy sa a te kote bagay sa yo te ale courbe 124 00:05:09,370 --> 00:05:11,120 ak tèt la déja Binky desann nan pwen sa a, 125 00:05:11,120 --> 00:05:15,290 paske move bagay rive lè ou dèreferans valè fatra 126 00:05:15,290 --> 00:05:18,210 oswa ou dèreferans valab endikasyon, e mwen di valab 127 00:05:18,210 --> 00:05:21,020 paske nan pwen sa a nan la istwa, ki sa ki andedan nan y? 128 00:05:21,020 --> 00:05:24,440 Ki sa ki nan valè a nan y baze sou etap sa yo sot pase yo kèk? 129 00:05:24,440 --> 00:05:25,360 Yeah? 130 00:05:25,360 --> 00:05:26,115 Ki sa ki nan sa? 131 00:05:26,115 --> 00:05:26,990 >> ODYANS: Yon adrès. 132 00:05:26,990 --> 00:05:28,460 DAVID Malan: Yon adrès. 133 00:05:28,460 --> 00:05:31,910 Li ta dwe yon adrès men m 'inisyalizèd li? 134 00:05:31,910 --> 00:05:32,800 Se konsa, mwen pa gen ankò. 135 00:05:32,800 --> 00:05:35,430 Se konsa, sa se li te ye yo dwe nan la? 136 00:05:35,430 --> 00:05:37,590 Se jis kèk valè fatra. 137 00:05:37,590 --> 00:05:41,500 Li ta ka nenpòt adrès soti nan zewo rive 2 milya dola si ou gen de jig nan RAM, 138 00:05:41,500 --> 00:05:44,289 oswa zewo rive 4 milya de dola si ou te te resevwa kat jigokte nan RAM. 139 00:05:44,289 --> 00:05:46,080 Li nan kèk valè fatra, men pwoblèm nan se 140 00:05:46,080 --> 00:05:48,200 ke sistèm nan fonksyone, si li pa te ban nou 141 00:05:48,200 --> 00:05:51,140 ki ti moso nan memwa espesyalman ki w ap eseye pou yo ale nan, 142 00:05:51,140 --> 00:05:54,650 li nan jeneralman ale nan lakòz sa nou te wè sa tankou yon fay segmentation. 143 00:05:54,650 --> 00:05:57,810 Se konsa, an reyalite, yon moun pami nou ki gen plede nan pwoblèm nan lè biwo 144 00:05:57,810 --> 00:06:00,393 oswa nan pwoblèm ki nan plis jeneralman ak ap eseye figi konnen 145 00:06:00,393 --> 00:06:02,150 yon fay segmentation, ki jeneralman vle di 146 00:06:02,150 --> 00:06:05,017 w ap manyen yon segman nan memwa ke ou pa ta dwe. 147 00:06:05,017 --> 00:06:07,350 W ap manyen memwa ki sistèm nan fonksyone a pa gen anyen 148 00:06:07,350 --> 00:06:10,450 pèmèt ou manyen, si li nan pa ale twò lwen nan etalaj ou 149 00:06:10,450 --> 00:06:12,870 oswa kòmanse kounye a, si wi ou non li a paske w ap manyen 150 00:06:12,870 --> 00:06:14,780 memwa ki jis se kèk valè fatra. 151 00:06:14,780 --> 00:06:18,230 >> Li ap fè travay zetwal x isit la se sòt de konpòtman endefini. 152 00:06:18,230 --> 00:06:22,030 Ou pa janm ta dwe fè l ', paske chans yo, pwogram nan nan jis ale nan aksidan, 153 00:06:22,030 --> 00:06:24,050 paske w ap di: ale nan adrès sa a 154 00:06:24,050 --> 00:06:27,000 epi ou pa gen okenn lide ki kote adrès ki aktyèlman se. 155 00:06:27,000 --> 00:06:30,300 Se konsa, sistèm nan fonksyone gen anpil chans ale nan aksidan pwogram ou an 156 00:06:30,300 --> 00:06:33,840 kòm yon rezilta ak tout bon, sa se sa ki te pase gen yo Binky. 157 00:06:33,840 --> 00:06:37,210 Se konsa, finalman, Binky fiks pwoblèm sa a ak sa. 158 00:06:37,210 --> 00:06:38,909 Se konsa, ke pwogram tèt li te defekte. 159 00:06:38,909 --> 00:06:41,450 Men, si ou sòt de fòje devan yo ak egzekite liy sa a olye de sa, 160 00:06:41,450 --> 00:06:45,580 y egal x vle di tou sa jis adrès se yon x, tou mete l 'nan y. 161 00:06:45,580 --> 00:06:48,740 >> Se konsa, pictorially, nou te reprezante sa a ak de flèch 162 00:06:48,740 --> 00:06:51,570 soti nan x ak pou soti nan y pwente nan plas la menm. 163 00:06:51,570 --> 00:06:55,760 Se konsa, Semantics, x ki egal y paske tou de nan sa yo 164 00:06:55,760 --> 00:07:00,300 yo estoke menm bagay la tou adrès, èrgo montre nan 42, 165 00:07:00,300 --> 00:07:04,910 epi kounye a, lè ou di zetwal y, ale nan adrès la nan y, 166 00:07:04,910 --> 00:07:06,790 sa a te gen yon efè segondè enteresan. 167 00:07:06,790 --> 00:07:10,320 Se konsa, adrès la nan y se nan menm bagay kòm adrès la nan x. 168 00:07:10,320 --> 00:07:15,060 Se konsa, si ou di ale nan adrès la nan y ak chanje valè la a 13, 169 00:07:15,060 --> 00:07:17,140 ki lòt moun ap afekte? 170 00:07:17,140 --> 00:07:21,100 X se, pwen D, se konsa pale, yo ta dwe afekte kòm byen. 171 00:07:21,100 --> 00:07:24,340 >> Ak tout bon, ki jan Nick te trase foto sa a nan claymation te egzakteman sa. 172 00:07:24,340 --> 00:07:28,665 Menm si nou swiv konsèy la y, nou te fini nan plas la menm, 173 00:07:28,665 --> 00:07:32,780 ak Se konsa, si nou te ekri ak lèt ​​detache soti x oswa y pointee a, 174 00:07:32,780 --> 00:07:35,720 Lè sa a, nou ta renmen wè valè a nan 13. 175 00:07:35,720 --> 00:07:37,927 Koulye a, mwen di pointee yo dwe ki konsistan avèk videyo a. 176 00:07:37,927 --> 00:07:39,760 Pwogramasyon, nan m ' konesans, pa janm aktyèlman 177 00:07:39,760 --> 00:07:42,460 di mo pointee a, sa ki pwenti 178 00:07:42,460 --> 00:07:44,650 a, men pou konsistans ak videyo a, reyalize 179 00:07:44,650 --> 00:07:47,520 sa a, se tout sa ki te vle di nan ki sitiyasyon. 180 00:07:47,520 --> 00:07:54,190 Se konsa, nenpòt kesyon sou claymation oswa endikasyon oswa malok jis ankò? 181 00:07:54,190 --> 00:07:54,850 Se pa? 182 00:07:54,850 --> 00:07:55,470 Tout dwa. 183 00:07:55,470 --> 00:07:58,560 >> Se konsa, san yo pa plis tarde, kite a pran yon gade 184 00:07:58,560 --> 00:08:00,700 nan kote sa a gen aktyèlman te itilize pou kèk tan. 185 00:08:00,700 --> 00:08:03,580 Se konsa, nou te gen bibliyotèk CS50 sa a ki nan te resevwa tout nan fonksyon sa yo. 186 00:08:03,580 --> 00:08:06,810 Nou te itilize GetInt yon anpil, GetString, pwobableman pi bonè GetLongLong 187 00:08:06,810 --> 00:08:09,840 nan pset mwen youn oswa konsa, men sa k ap aktyèlman te ale sou? 188 00:08:09,840 --> 00:08:12,920 Oke, kite a pran yon gade rapid anba kapo a nan yon pwogram ki 189 00:08:12,920 --> 00:08:17,017 enspire poutèt sa nou ba ou CS50 nan bibliyotèk, ak tout bon kòm nan semèn pase a, 190 00:08:17,017 --> 00:08:18,850 nou te kòmanse pran moun wou fòmasyon an. 191 00:08:18,850 --> 00:08:21,080 Se konsa, sa se kounye a Ranje nan yon otopsi nan sa ki 192 00:08:21,080 --> 00:08:23,690 ki te ale sou andedan bibliyotèk la CS50, 193 00:08:23,690 --> 00:08:27,250 menm si nou kounye a pral kòmanse deplase lwen soti nan li pou pifò pwogram yo. 194 00:08:27,250 --> 00:08:29,460 >> Se konsa, sa a se yon pwogram ki rele skanf 0. 195 00:08:29,460 --> 00:08:30,510 Li nan super kout. 196 00:08:30,510 --> 00:08:33,909 Li jis gen liy sa yo, men li entwodui yon fonksyon rele skanf 197 00:08:33,909 --> 00:08:36,909 ke nou ap aktyèlman pral wè nan yon ti moman andedan nan bibliyotèk la CS50, 198 00:08:36,909 --> 00:08:38,600 kwake nan yon fòm yon ti kras diferan. 199 00:08:38,600 --> 00:08:41,330 Se konsa, pwogram sa a sou liy 16 se deklare yon x varyab. 200 00:08:41,330 --> 00:08:43,150 Se konsa, ban m 'kat bytes pou yon int. 201 00:08:43,150 --> 00:08:45,750 Li te di itilizatè, Nimewo tanpri, ak Lè sa a 202 00:08:45,750 --> 00:08:49,010 sa a se yon liy enteresan ki aktyèlman mare ansanm semèn pase a 203 00:08:49,010 --> 00:08:49,790 ak sa a. 204 00:08:49,790 --> 00:08:53,230 Skanf, ak Lè sa remake li pran yon fòma fisèl, jis tankou printf, 205 00:08:53,230 --> 00:08:57,480 % m vle di yon int, ak Lè sa li pran yon dezyèm agiman ki sanble yon ti kras 206 00:08:57,480 --> 00:08:58,260 Funky. 207 00:08:58,260 --> 00:09:01,880 Li nan comercial x, ak sonje, nou sèlman te wè semèn sa a yon fwa pase. 208 00:09:01,880 --> 00:09:03,465 Ki sa ki comercial x reprezante? 209 00:09:03,465 --> 00:09:06,210 210 00:09:06,210 --> 00:09:08,450 Ki sa ki comercial fè nan C? 211 00:09:08,450 --> 00:09:08,950 Yeah? 212 00:09:08,950 --> 00:09:10,024 >> ODYANS: postal la nan. 213 00:09:10,024 --> 00:09:11,190 DAVID Malan: postal la nan. 214 00:09:11,190 --> 00:09:13,190 Se konsa, li opoze a nan operatè a etwal, 215 00:09:13,190 --> 00:09:17,270 Lè nou konsidere ke operatè a zetwal di, ale nan adrès sa a, operatè a comercial 216 00:09:17,270 --> 00:09:20,280 di, figi konnen an adrès nan varyab sa a, 217 00:09:20,280 --> 00:09:23,530 ak kidonk sa a se kle, paske objektif skanf a nan lavi 218 00:09:23,530 --> 00:09:26,320 se yo analysis nan nan itilizatè enfòmasyon nan men gwoup klavye a, 219 00:09:26,320 --> 00:09:29,970 depann sou tou sa l 'oswa li te kalite, ak Lè sa a li opinyon ki itilizatè a 220 00:09:29,970 --> 00:09:32,970 nan yon varyab, men nou te wè nan de semèn ki sot pase yo 221 00:09:32,970 --> 00:09:36,080 ki ki fonksyon swap ke nou eseye efor aplike 222 00:09:36,080 --> 00:09:37,110 te jis kase. 223 00:09:37,110 --> 00:09:42,470 Sonje byen, ak fonksyon an swap, si nou jis te deklare A ak B kòm antye, 224 00:09:42,470 --> 00:09:47,040 nou te avèk siksè swap a de varyab andedan nan swap 225 00:09:47,040 --> 00:09:50,080 jis tankou ak lèt ​​la ak OJ, men le pli vit ke swap tounen, 226 00:09:50,080 --> 00:09:55,200 sa ki te rezilta a ki gen rapò x ak y, valè orijinal yo? 227 00:09:55,200 --> 00:09:55,700 Pa gen anyen. 228 00:09:55,700 --> 00:09:56,200 Yeah. 229 00:09:56,200 --> 00:09:59,754 Pa gen anyen ki te pase tan sa a, paske echanj chanje sèlman kopi lokal li yo, 230 00:09:59,754 --> 00:10:01,670 sa vle di, tout tan sa a, chak fwa nou te 231 00:10:01,670 --> 00:10:04,010 te pase nan agiman nan fonksyon, nou ap 232 00:10:04,010 --> 00:10:05,939 jis pase kopi nan tout sa yo agiman. 233 00:10:05,939 --> 00:10:07,980 Ou ka fè ak sa tou sa ou vle ak yo, 234 00:10:07,980 --> 00:10:10,890 men yo pwal santi yo pa gen okenn efè sou valè yo orijinal la. 235 00:10:10,890 --> 00:10:13,650 Se konsa, sa se yon pwoblèm si ou vle gen yon fonksyon tankou skanf 236 00:10:13,650 --> 00:10:17,170 nan lavi, ki gen objektif se yo analysis D 'itilizatè a nan soti nan klavye a 237 00:10:17,170 --> 00:10:22,010 ak Lè sa a ranpli nan espas vid yo, se konsa yo pale, se sa ki, bay yon varyab tankou x 238 00:10:22,010 --> 00:10:25,410 se yon valè, paske si m 'te jis pase x skanf, 239 00:10:25,410 --> 00:10:28,790 si ou konsidere lojik la nan dènye semèn, skanf ka fè tou sa li vle 240 00:10:28,790 --> 00:10:33,100 ak yon kopi x, men li pa t 'kapab pou tout tan chanje x sof si nou bay 241 00:10:33,100 --> 00:10:37,120 skanf yon kat jeyografik trezò, se konsa pale, kote x make plas la, annakò ak sa 242 00:10:37,120 --> 00:10:41,860 nou pase nan adrès ki nan x se konsa ke skanf ka ale la ak aktyèlman chanje 243 00:10:41,860 --> 00:10:42,920 valè a nan x. 244 00:10:42,920 --> 00:10:45,080 Se konsa, tout bon, tout ke pwogram sa a fè 245 00:10:45,080 --> 00:10:53,180 si mwen fè skanf 0, nan sous mwen 5m anyè, asire skanf 0, 246 00:10:53,180 --> 00:10:57,730 dot koupe skanf, nimewo tanpri 50, mèsi pou 50 an. 247 00:10:57,730 --> 00:11:01,020 >> Se konsa, li pa tout sa ki enteresan, men sa k ap pase tout bon 248 00:11:01,020 --> 00:11:04,820 se ke le pli vit ke mwen rele skanf isit la, valè a nan x 249 00:11:04,820 --> 00:11:06,410 se ke yo te tout tan chanje. 250 00:11:06,410 --> 00:11:08,335 Koulye a, sa a sanble bèl ak bon, ak an reyalite, li 251 00:11:08,335 --> 00:11:11,200 sanble tankou nou pa reyèlman bezwen bibliyotèk la CS50 nan tout ankò. 252 00:11:11,200 --> 00:11:13,960 Pou egzanp, kite a kouri sa a yon fwa plis isit la. 253 00:11:13,960 --> 00:11:15,750 Kite m 're-louvri li pou yon dezyèm fwa. 254 00:11:15,750 --> 00:11:20,600 Ann eseye yon PO tanpri ak olye pou yo li di 50 tankou anvan, 255 00:11:20,600 --> 00:11:22,810 kite yo jis di pa gen okenn. 256 00:11:22,810 --> 00:11:24,000 OK, sa a, se yon ti kras etranj. 257 00:11:24,000 --> 00:11:25,270 OK. 258 00:11:25,270 --> 00:11:28,680 Epi jis kèk istwa san sans isit la. 259 00:11:28,680 --> 00:11:31,170 Se konsa, li pa sanble yo okipe sitiyasyon inègza. 260 00:11:31,170 --> 00:11:33,620 Se konsa, nou bezwen minim kòmansman pandan l ajoute kèk erè-tcheke 261 00:11:33,620 --> 00:11:37,460 a asire w ke itilizatè a gen tape nan yon nimewo aktyèl tankou 50, 262 00:11:37,460 --> 00:11:40,720 paske aparamman sezisman pawòl se pa sa detekte kòm pwoblèm, 263 00:11:40,720 --> 00:11:42,020 men li pwobableman ta dwe. 264 00:11:42,020 --> 00:11:46,450 >> Se pou yo gade nan vèsyon sa-a kounye a sa a, se tantativ mwen an reimplement GetString. 265 00:11:46,450 --> 00:11:48,437 Si skanf gen tout bagay sa a fonctionnalités bati nan, 266 00:11:48,437 --> 00:11:51,270 poukisa nou te diletantism ak sa yo wou fòmasyon tankou GetString? 267 00:11:51,270 --> 00:11:55,450 Oke, isit la se petèt pwòp mwen senp vèsyon an GetString 268 00:11:55,450 --> 00:12:00,766 kijan yon semèn de sa, mwen ta ka yo te di, ban m 'yon fisèl ak rele li pezib. 269 00:12:00,766 --> 00:12:03,390 Jodi a, mwen pral kòmanse jis li di zetwal Char, ki, sonje, 270 00:12:03,390 --> 00:12:04,400 li nan jis synonyme. 271 00:12:04,400 --> 00:12:06,629 Li sanble scarier men li la egzak menm bagay la. 272 00:12:06,629 --> 00:12:09,420 Se konsa, ban m 'yon varyab rele zòn de defans ki k ap pase nan magazen yon fisèl, 273 00:12:09,420 --> 00:12:12,780 di fisèl la itilizatè tanpri, ak Lè sa a, jis tankou anvan, 274 00:12:12,780 --> 00:12:17,760 se pou yo eseye prete leson sa a skanf % s tan sa a ak Lè sa a pase nan zòn de defans. 275 00:12:17,760 --> 00:12:19,310 Koulye a, yon chèk saniti rapid. 276 00:12:19,310 --> 00:12:22,120 Poukisa mwen pa di comercial pezib tan sa a? 277 00:12:22,120 --> 00:12:25,190 278 00:12:25,190 --> 00:12:26,625 Dégager soti nan egzanp lan anvan yo. 279 00:12:26,625 --> 00:12:28,000 ODYANS: Char zetwal se yon konsèy. 280 00:12:28,000 --> 00:12:29,920 DAVID Malan: Egzakteman, paske tan sa a, Char 281 00:12:29,920 --> 00:12:34,080 zetwal se deja yon konsèy, yon adrès, pa definisyon nan ki zetwal yo te gen. 282 00:12:34,080 --> 00:12:37,530 Men, si skanf espere yon adrès, li sifizan jis konsa, nan zòn de defans. 283 00:12:37,530 --> 00:12:39,260 Mwen pa bezwen di comercial tanpon. 284 00:12:39,260 --> 00:12:42,177 Pou kirye a, ou te kapab fè yon bagay tankou sa a. 285 00:12:42,177 --> 00:12:43,510 Li ta gen diferan sans. 286 00:12:43,510 --> 00:12:47,240 Sa a ta ba ou yon konsèy nan yon konsèy, ki se aktyèlman 287 00:12:47,240 --> 00:12:50,050 yon bagay ki valab nan C, men pou kounye a, se pou yo kenbe li senp 288 00:12:50,050 --> 00:12:51,750 epi kenbe istwa a ki konsistan. 289 00:12:51,750 --> 00:12:54,100 Mwen jis ale nan pase nan pezib e ke sa a kòrèk. 290 00:12:54,100 --> 00:12:56,487 Pwoblèm nan menm si se sa a. 291 00:12:56,487 --> 00:12:58,820 Kite m 'ale pi devan epi kouri sa a pwogram apre konpile li. 292 00:12:58,820 --> 00:13:00,902 Fè skanf 1. 293 00:13:00,902 --> 00:13:02,610 Modi li, du mwen an pwan erè m 'yo. 294 00:13:02,610 --> 00:13:04,090 Ban m 'yon sèl dezyèm fwa. 295 00:13:04,090 --> 00:13:05,460 Rezone. 296 00:13:05,460 --> 00:13:06,990 Se pou nou di skanf-1.c. 297 00:13:06,990 --> 00:13:10,880 298 00:13:10,880 --> 00:13:11,380 OK. 299 00:13:11,380 --> 00:13:12,720 Gen nou ale. 300 00:13:12,720 --> 00:13:14,280 Mwen bezwen l. 301 00:13:14,280 --> 00:13:16,750 ID CS50 gen divès kalite anviwònman konfigirasyon 302 00:13:16,750 --> 00:13:18,280 ki pwoteje ou kont tèt ou. 303 00:13:18,280 --> 00:13:21,300 Mwen te bezwen enfim moun pa kouri rezone manyèlman tan sa a. 304 00:13:21,300 --> 00:13:22,140 Se konsa, fisèl tanpri. 305 00:13:22,140 --> 00:13:25,560 Mwen pral ale pi devan epi tape nan mond pi renmen alo mwen. 306 00:13:25,560 --> 00:13:26,490 OK, nil. 307 00:13:26,490 --> 00:13:27,700 Sa a pa ki sa mwen tape. 308 00:13:27,700 --> 00:13:29,690 Se konsa, li indicative de yon bagay ke yo te sa ki mal. 309 00:13:29,690 --> 00:13:33,920 Kite m 'ale pi devan epi tape nan yon fisèl reyèlman long. 310 00:13:33,920 --> 00:13:37,210 Mèsi pou nil la ak Mwen pa konnen si mwen pral pou kapab aksidan li. 311 00:13:37,210 --> 00:13:40,240 Ann eseye yon ti kras kopi keratin ak wè si sa a ede. 312 00:13:40,240 --> 00:13:43,290 Jis kole yon anpil nan sa a. 313 00:13:43,290 --> 00:13:47,310 Li definitivman yon pi gwo fisèl pase nòmal. 314 00:13:47,310 --> 00:13:51,450 Se pou nou jis reyèlman ekri li. 315 00:13:51,450 --> 00:13:51,950 No 316 00:13:51,950 --> 00:13:52,650 Modi li. 317 00:13:52,650 --> 00:13:53,480 Pa mande jwenn. 318 00:13:53,480 --> 00:13:54,550 Se konsa, sa a, se gen rapò. 319 00:13:54,550 --> 00:13:56,440 Sa a paske mwen kopye kèk karaktè move, 320 00:13:56,440 --> 00:13:59,780 men sa a vire soti a pa pral travay. 321 00:13:59,780 --> 00:14:03,510 >> Ann eseye sa a yon fwa plis, paske li a plezi pi plis si nou aktyèlman aksidan li. 322 00:14:03,510 --> 00:14:09,116 Se pou yo tape sa a epi kounye a, mwen se ale nan kopi yon kòd reyèlman long 323 00:14:09,116 --> 00:14:10,990 e kounye a, kite a wè si nou ka aksidan bagay sa a. 324 00:14:10,990 --> 00:14:14,235 Avi mwen omisyon espas ak liy ak nouvo virgules 325 00:14:14,235 --> 00:14:16,035 ak tout karaktè Funky. 326 00:14:16,035 --> 00:14:16,535 Antre nan. 327 00:14:16,535 --> 00:14:21,090 328 00:14:21,090 --> 00:14:22,880 Epi, koulye a rezo a nan jis ke yo te ralanti. 329 00:14:22,880 --> 00:14:27,460 Mwen te kenbe desann Kòmandman-V twò lontan, byen klè. 330 00:14:27,460 --> 00:14:28,190 Modi li! 331 00:14:28,190 --> 00:14:29,260 Pa mande jwenn. 332 00:14:29,260 --> 00:14:29,780 >> OK. 333 00:14:29,780 --> 00:14:32,240 Oke, pwen an se Alòske sa ki annapre yo. 334 00:14:32,240 --> 00:14:36,910 Se konsa, sa se aktyèlman pral sou ak deklarasyon sa a 335 00:14:36,910 --> 00:14:39,240 a Char tanpon zetwal sou liy 16? 336 00:14:39,240 --> 00:14:41,820 Se konsa, sa mwen ap resevwa menm lè m 'deklare yon konsèy? 337 00:14:41,820 --> 00:14:47,440 Tout sa mwen ap resevwa se yon valè kat multiple rele zòn de defans, men sa ki nan andedan nan li 338 00:14:47,440 --> 00:14:49,540 nan moman sa a? 339 00:14:49,540 --> 00:14:50,930 Se jis kèk valè fatra. 340 00:14:50,930 --> 00:14:54,170 Paske nenpòt ki lè ou deklare yon varyab nan C, li nan jis kèk valè fatra, 341 00:14:54,170 --> 00:14:56,220 epi nou ap kòmanse vwayaj sou reyalite sa a. 342 00:14:56,220 --> 00:14:59,720 Koulye a, lè m'ap di skanf, ale nan adrès sa a 343 00:14:59,720 --> 00:15:01,520 , li mete tou sa ki kalite itilizatè nan. 344 00:15:01,520 --> 00:15:06,400 Si itilizatè a kalite nan alo mond, byen, kote mwen mete l '? 345 00:15:06,400 --> 00:15:07,750 Tanpon se yon valè fatra. 346 00:15:07,750 --> 00:15:11,510 >> Se konsa, sa a, se kalite tankou yon flèch ki nan lonje dwèt moun ki konnen ki kote. 347 00:15:11,510 --> 00:15:13,880 Petèt li nan lonje dwèt dwa isit la nan memwa mwen. 348 00:15:13,880 --> 00:15:16,560 Se konsa, lè itilizatè a kalite nan mond hello, 349 00:15:16,560 --> 00:15:22,380 pwogram nan ap eseye mete nan fisèl alo mond antislach 0 350 00:15:22,380 --> 00:15:23,910 nan ki ti moso nan memwa. 351 00:15:23,910 --> 00:15:27,070 Men, avèk gwo pwobablite, men klèman pa 100% pwobabilite, 352 00:15:27,070 --> 00:15:30,440 òdinatè a ki pral Lè sa a, aksidan pwogram lan paske sa a se pa 353 00:15:30,440 --> 00:15:32,490 memwa mwen ta dwe gen dwa manyen. 354 00:15:32,490 --> 00:15:36,330 Se konsa, nan ti bout tan, pwogram sa a se defekte pou egzakteman rezon ki fè sa. 355 00:15:36,330 --> 00:15:38,070 Mwen fondamantalman pa fè ki sa? 356 00:15:38,070 --> 00:15:42,366 Ki etap, mwen omisyon, jis tankou nou omisyon ak premye egzanp Binky a? 357 00:15:42,366 --> 00:15:42,866 Yeah? 358 00:15:42,866 --> 00:15:43,710 >> ODYANS: alokasyon memwa? 359 00:15:43,710 --> 00:15:45,001 >> DAVID Malan: alokasyon memwa. 360 00:15:45,001 --> 00:15:48,400 Mwen pa te resevwa lajan aktyèlman nenpòt memwa pou ki fisèl. 361 00:15:48,400 --> 00:15:50,270 Se konsa, nou ka ranje sa a nan yon koup nan fason. 362 00:15:50,270 --> 00:15:52,700 Youn, nou ka kenbe li senp ak nan reyalite, kounye a ou se 363 00:15:52,700 --> 00:15:55,116 pral kòmanse wè yon konfizyon nan liy ki ant sa 364 00:15:55,116 --> 00:15:58,520 yon etalaj se, ki sa yon fisèl se, ki sa yon zetwal Char se, ki sa yon etalaj de charaktèr 365 00:15:58,520 --> 00:15:59,020 se. 366 00:15:59,020 --> 00:16:02,450 Isit la nan yon dezyèm egzanp ki enplike strings ak avi 367 00:16:02,450 --> 00:16:05,690 tout mwen te fè sou liy 16 se, olye pou yo li di 368 00:16:05,690 --> 00:16:09,530 ki zòn de defans a pwal yon Char etwal, yon konsèy nan yon ti moso nan memwa, 369 00:16:09,530 --> 00:16:14,057 Mwen pral trè dinamik bay tèt mwen yon zòn de defans pou 16 karaktè, 370 00:16:14,057 --> 00:16:16,390 ak nan reyalite, si w ap abitye ak tampon nan tèm, 371 00:16:16,390 --> 00:16:20,570 pwobableman soti nan mond lan nan videyo, kote yon videyo ki tampon, tampon, 372 00:16:20,570 --> 00:16:21,175 tampon. 373 00:16:21,175 --> 00:16:22,550 Oke, sa ki nan koneksyon an isit la? 374 00:16:22,550 --> 00:16:24,960 Oke, Anndan nan YouTube ak andedan nan jwè videyo 375 00:16:24,960 --> 00:16:27,200 jeneralman se yon etalaj sa a, se pi gwo pase 16. 376 00:16:27,200 --> 00:16:30,340 Li ta ka yon etalaj de gwosè yon sèl megaokte, petèt 10 megabit, 377 00:16:30,340 --> 00:16:34,330 ak nan ki etalaj fè navigatè ou a download yon pakèt antye nan bytes, 378 00:16:34,330 --> 00:16:37,500 yon pakèt antye nan megabit nan videyo, ak jwè a videyo, 379 00:16:37,500 --> 00:16:40,930 YouTube a oswa moun ki va la, kòmanse lekti bytes nan soti nan ki etalaj, 380 00:16:40,930 --> 00:16:43,530 ak nenpòt ki lè ou wè nan tampon mo, tampon, 381 00:16:43,530 --> 00:16:46,350 sa vle di jwè a gen vinn nan fen a nan ki etalaj. 382 00:16:46,350 --> 00:16:50,430 Rezo a se konsa dousman ke li a pa gen anyen rampli etalaj la ki gen plis bytes 383 00:16:50,430 --> 00:16:55,610 e konsa w ap soti nan Bits yo montre nan itilizatè a. 384 00:16:55,610 --> 00:16:59,430 >> Se konsa, zòn de defans se yon tèm nimewo apatman isit la nan ki li nan jis yon etalaj, yon ti moso nan memwa. 385 00:16:59,430 --> 00:17:02,530 Lè sa a pral fikse li paske li vire soti 386 00:17:02,530 --> 00:17:07,410 ke ou ka trete ranje tankou si yo adrès, menm si tanpon 387 00:17:07,410 --> 00:17:10,710 se jis yon senbòl, li nan yon sekans nan karaktè, tanpon, 388 00:17:10,710 --> 00:17:14,760 sa a, se itil pou m ', pwogramè a, ou ka pase non li alantou 389 00:17:14,760 --> 00:17:17,079 tankou si li te yon konsèy, tankou si li 390 00:17:17,079 --> 00:17:21,000 te adrès la nan yon moso nan memwa pou 16 charaktèr. 391 00:17:21,000 --> 00:17:24,530 Se konsa, sa a, se yo di, mwen ka pase skanf la egzakteman mo sa a 392 00:17:24,530 --> 00:17:30,670 ak konsa koulye a, si mwen fè pwogram sa a, fè skanf 2, dot koupe skanf 2, 393 00:17:30,670 --> 00:17:35,386 ak kalite nan alo mond, Antre, ki time-- 394 00:17:35,386 --> 00:17:37,590 >> O o, sa ki te pase? 395 00:17:37,590 --> 00:17:39,340 Fisèl tanpri. 396 00:17:39,340 --> 00:17:41,430 Ki sa m 'fè ki mal? 397 00:17:41,430 --> 00:17:43,800 Bonjou mond, tanpon. 398 00:17:43,800 --> 00:17:44,705 Bonjou nan lemonn. 399 00:17:44,705 --> 00:17:48,201 400 00:17:48,201 --> 00:17:49,420 Ah, mwen konnen sa li a fè. 401 00:17:49,420 --> 00:17:49,920 OK. 402 00:17:49,920 --> 00:17:51,628 Se konsa, li nan lekti moute jouk espas ki la an premye. 403 00:17:51,628 --> 00:17:55,680 Se konsa nou tronpe pou jis yon ti moman ak di mwen jis te vle tape yon bagay 404 00:17:55,680 --> 00:18:01,408 reyèlman long tankou sa a se yon fraz ki long sa a, se yon sèl, de, twa, kat, senk, 405 00:18:01,408 --> 00:18:04,420 sis, sèt, uit, nèf, 10, 11, 12, 13, 14, 15, 16. 406 00:18:04,420 --> 00:18:05,300 OK. 407 00:18:05,300 --> 00:18:07,600 Li se vre yon fraz long. 408 00:18:07,600 --> 00:18:10,710 Se konsa, sa a se fraz pi lontan pase 16 karaktè 409 00:18:10,710 --> 00:18:13,670 ak pou lè m 'frape Antre, sa ki pwal rive? 410 00:18:13,670 --> 00:18:16,940 Oke, nan ka sa a nan la istwa, mwen te deklare tanpon 411 00:18:16,940 --> 00:18:22,190 ki aktyèlman yo te yon etalaj ak 16 charaktèr pare ale. 412 00:18:22,190 --> 00:18:27,426 Se konsa, yon sèl, de, twa, kat, senk, sis, sèt, uit, nèf, 10, 11, 12, 13, 14, 413 00:18:27,426 --> 00:18:29,440 15, 16. 414 00:18:29,440 --> 00:18:34,410 Se konsa, 16 karaktè, epi kounye a, lè m ' li nan yon bagay tankou sa a se yon long 415 00:18:34,410 --> 00:18:43,950 fraz, ki sa ki pwal pase se ke mwen pral li nan sa a se yon long 416 00:18:43,950 --> 00:18:49,660 S-E-N-T-E-N-C-E, fraz. 417 00:18:49,660 --> 00:18:52,270 >> Se konsa, sa a se fè espre yon move bagay ke mwen 418 00:18:52,270 --> 00:18:55,060 kenbe ekri pi lwen pase a limit nan etalaj mwen, 419 00:18:55,060 --> 00:18:56,660 pi lwen pase limit yo nan zòn de defans mwen. 420 00:18:56,660 --> 00:19:00,100 Mwen te kapab jwenn chans ak pwogram nan ap kenbe sou kouri ak pa pran swen, 421 00:19:00,100 --> 00:19:03,450 men jeneralman pale, sa a pral tout bon aksidan pwogram m 'yo, 422 00:19:03,450 --> 00:19:06,440 epi li se yon ensèk nan m ' kode moman sa a mwen etap 423 00:19:06,440 --> 00:19:08,576 pi lwen pase limit yo nan ki etalaj, paske mwen 424 00:19:08,576 --> 00:19:10,450 pa konnen si li nan nesesèman ale nan aksidan 425 00:19:10,450 --> 00:19:12,120 oswa si mwen jis ale nan jwenn chans. 426 00:19:12,120 --> 00:19:15,750 Se konsa, sa se yon pwoblèm paske nan sa a, li sanble yo travay 427 00:19:15,750 --> 00:19:20,931 e kite yo tante sò isit la, menm si IDE a sanble li rive tolere byen yon ti jan 428 00:19:20,931 --> 00:19:21,430 de- 429 00:19:21,430 --> 00:19:22,040 >> Gen nou ale. 430 00:19:22,040 --> 00:19:23,240 Finalman. 431 00:19:23,240 --> 00:19:26,470 Se konsa, mwen youn nan sèlman ki kapab wè sa a. 432 00:19:26,470 --> 00:19:29,630 Se konsa, mwen jis te gen yon anpil plezi sezisman soti yon reyèlman long fraz aktyèl 433 00:19:29,630 --> 00:19:32,800 ke li sètènman depase 16 bytes, paske mwen 434 00:19:32,800 --> 00:19:38,050 tape nan sa a fou lontan milti-liy fraz, ak Lè sa a remake sa ki te pase. 435 00:19:38,050 --> 00:19:41,110 Pwogram nan te eseye enprime li ak Lè sa a te resevwa yon fay segmentation 436 00:19:41,110 --> 00:19:44,430 ak fot segmentation se lè yon bagay tankou sa rive 437 00:19:44,430 --> 00:19:47,650 ak sistèm nan fonksyone di pa gen okenn, pa ka manyen ki memwa. 438 00:19:47,650 --> 00:19:49,570 Nou pral touye pwogram nan tout ansanm. 439 00:19:49,570 --> 00:19:51,180 >> Se konsa, sa a sanble Pwoblematik. 440 00:19:51,180 --> 00:19:54,540 Mwen te amelyore pwogram nan kijan omwen gen kèk memwa, 441 00:19:54,540 --> 00:19:58,000 men sa a ta sanble yo Fèmen GetString an fonksyon a ap resevwa 442 00:19:58,000 --> 00:20:00,780 strings nan kèk longè fini 16. 443 00:20:00,780 --> 00:20:04,200 Se konsa, si ou vle sipòte ankò fraz pase 16 karaktè, 444 00:20:04,200 --> 00:20:04,880 sa w ap fè? 445 00:20:04,880 --> 00:20:07,970 Oke, ou ka ogmante nan gwosè nan zòn de defans sa a jiska 32 446 00:20:07,970 --> 00:20:09,190 oswa ki sanble kalite kout. 447 00:20:09,190 --> 00:20:12,260 Poukisa nou pa nou jis fè li 1,000 men pouse tounen. 448 00:20:12,260 --> 00:20:17,100 Ki sa ki nan repons lan entwitif nan jis evite pwoblèm sa a pa fè 449 00:20:17,100 --> 00:20:20,660 tanpon mwen pi gwo, tankou 1,000 charaktèr? 450 00:20:20,660 --> 00:20:23,470 Pa mete ann aplikasyon GetString nan fason sa. 451 00:20:23,470 --> 00:20:27,130 Ki sa ki nan bon oubyen move isit la? 452 00:20:27,130 --> 00:20:28,033 Yeah? 453 00:20:28,033 --> 00:20:30,574 ODYANS: Si ou mare moute yon anpil nan espas epi ou pa sèvi ak li, 454 00:20:30,574 --> 00:20:33,500 Lè sa a, ou pa ka aloue ki espas. 455 00:20:33,500 --> 00:20:34,500 DAVID Malan: Absoliman. 456 00:20:34,500 --> 00:20:38,480 Li nan inutil tèl degre ke si ou pa fè sa aktyèlman bezwen 900 nan tout sa yo bytes 457 00:20:38,480 --> 00:20:41,057 e ankò w ap mande pou 1,000 nan total de tout fason, 458 00:20:41,057 --> 00:20:44,140 w ap sèlman konsome plis memwa sou òdinatè itilizatè a pase ou bezwen, 459 00:20:44,140 --> 00:20:45,740 epi apre tout, kèk nan ou te deja rankontre 460 00:20:45,740 --> 00:20:47,620 nan lavi ki lè w ap kouri anpil nan pwogram 461 00:20:47,620 --> 00:20:50,470 epi yo ap manje moute anpil nan memwa, sa a ka aktyèlman gen enpak sou pèfòmans 462 00:20:50,470 --> 00:20:52,220 ak eksperyans itilizatè a sou òdinatè a. 463 00:20:52,220 --> 00:20:56,090 Se konsa, sa a, se kalite yon solisyon parese, pou asire w, ak Kontrèman, 464 00:20:56,090 --> 00:21:00,140 li a pa sèlman inutil, ki sa pwoblèm toujou rete, menm si mwen fè m 'tanpon 465 00:21:00,140 --> 00:21:02,100 1,000? 466 00:21:02,100 --> 00:21:02,600 Yeah? 467 00:21:02,600 --> 00:21:04,475 >> ODYANS: fisèl la se longè 1,001. 468 00:21:04,475 --> 00:21:05,350 DAVID Malan: Egzakteman. 469 00:21:05,350 --> 00:21:08,280 Si fisèl ou a se longè 1,001, ou gen egzak menm pwoblèm lan, 470 00:21:08,280 --> 00:21:10,705 ak pa agiman m 'yo, mwen ta jis Lè sa a, fè l '2000, 471 00:21:10,705 --> 00:21:12,830 men ou pa konnen nan avanse ki jan gwo li ta dwe, 472 00:21:12,830 --> 00:21:16,890 E ankò, mwen gen yo konpile pwogram mwen anvan refize kite pèp itilize ak download 473 00:21:16,890 --> 00:21:17,390 li. 474 00:21:17,390 --> 00:21:21,490 Se konsa, sa a se egzakteman ki kalite bagay ki ap eseye yo bibliyotèk CS50 475 00:21:21,490 --> 00:21:24,750 ede nou ak ak nou pral sèlman ti koutje sou nan kèk nan aplikasyon an kache 476 00:21:24,750 --> 00:21:29,790 isit la, men sa a se CS50 dot C. Sa a se dosye a ki nan te sou CS50 IDE 477 00:21:29,790 --> 00:21:31,420 tout semèn sa yo ki ou ve yo te lè l sèvi avèk. 478 00:21:31,420 --> 00:21:34,280 Li nan pre-konpile ak ou te lè l sèvi avèk li otomatikman 479 00:21:34,280 --> 00:21:38,780 pa nati ki gen nan kase L CS50 drapo ak rezone, 480 00:21:38,780 --> 00:21:42,300 men si mwen desann nan tout nan fonksyon sa yo, isit la nan GetString, 481 00:21:42,300 --> 00:21:44,636 ak jis ba ou yon gou nan sa k ap pase sou li a, 482 00:21:44,636 --> 00:21:46,760 kite a pran yon gade rapid nan konpleksite nan manm fanmi. 483 00:21:46,760 --> 00:21:48,870 Li pa yon long super fonksyon, men nou pa t ' 484 00:21:48,870 --> 00:21:52,530 gen panse difisil sou tout ki jan yo ale sou kesyon pran strings. 485 00:21:52,530 --> 00:21:55,660 >> Se konsa, isit la nan zòn de defans mwen epi mwen aparamman inisyalize li nan nil. 486 00:21:55,660 --> 00:21:57,990 Sa a, nan kou, se nan menm bagay tankou zetwal Char, 487 00:21:57,990 --> 00:22:00,585 men mwen deside nan mete ann aplikasyon bibliyotèk la CS50 488 00:22:00,585 --> 00:22:02,460 ke si nou ap ale nan dwe konplètman dinamik, 489 00:22:02,460 --> 00:22:05,770 Mwen pa konnen nan avanse ki jan gwo nan yon itilizatè fisèl yo ale nan vle jwenn. 490 00:22:05,770 --> 00:22:08,140 Se konsa, mwen pral kòmanse ak jis yon fisèl vid 491 00:22:08,140 --> 00:22:11,507 ak mwen pral konstwi kòm anpil memwa kòm mwen bezwen nan anfòm fisèl la itilizatè 492 00:22:11,507 --> 00:22:13,340 epi si mwen pa gen ase, mwen pral mande 493 00:22:13,340 --> 00:22:15,010 sistèm nan fonksyone pou plis memwa. 494 00:22:15,010 --> 00:22:17,510 Mwen pral pou avanse pou pi fisèl yo nan yon moso pi gwo nan memwa 495 00:22:17,510 --> 00:22:21,847 ak mwen pral lage oswa gratis nan ensufizant moso gwo nan memwa 496 00:22:21,847 --> 00:22:23,680 epi nou ap jis ale fè sa iterativman. 497 00:22:23,680 --> 00:22:25,570 >> Se konsa, Yon ti koutje sou rapid, isit la nan jis yon varyab 498 00:22:25,570 --> 00:22:28,780 ak ki mwen pral kenbe tras nan kapasite a nan zòn de defans mwen. 499 00:22:28,780 --> 00:22:30,071 Konbyen bytes mwen kapab anfòm? 500 00:22:30,071 --> 00:22:32,070 Isit la nan yon n varyab ak ki mwen pral kenbe 501 00:22:32,070 --> 00:22:36,200 tras nan konbyen bytes yo aktyèlman an tanpon an oswa ki te itilizatè a tape. 502 00:22:36,200 --> 00:22:39,900 Si ou pa te wè sa a anvan, ou ka presize ki yon varyab tankou yon int 503 00:22:39,900 --> 00:22:46,370 se siye, ki kòm non an sijere, vle di li ki pa negatif, e poukisa ta 504 00:22:46,370 --> 00:22:50,590 Mwen janm vle deranje espesifye ke yon int se pa sèlman yon int, 505 00:22:50,590 --> 00:22:52,540 men li la yon int siye? 506 00:22:52,540 --> 00:22:55,064 Li se yon int ki pa negatif. 507 00:22:55,064 --> 00:22:56,355 Ki sa ki [fèbl a] vle di? 508 00:22:56,355 --> 00:22:58,910 >> ODYANS: Li nan dekri yon kantite lajan nan memwa ki ka [fèbl]. 509 00:22:58,910 --> 00:22:59,660 >> DAVID Malan: Yeah. 510 00:22:59,660 --> 00:23:03,710 Se konsa, si mwen di siye, sa a se aktyèlman ban nou yon sèl ti jan nan siplemantè memwa 511 00:23:03,710 --> 00:23:07,440 epi li sanble kalite komik, men si ou gen yon sèl ti jan nan plis memwa, ki 512 00:23:07,440 --> 00:23:09,940 vle di ou gen de fwa tankou anpil valè ou ka reprezante, 513 00:23:09,940 --> 00:23:11,570 paske li kapab yon 0 oswa yon 1. 514 00:23:11,570 --> 00:23:14,660 Se konsa, pa default, yon int kapab apeprè negatif 2 milya dola tout wout la 515 00:23:14,660 --> 00:23:16,030 jiska pozitif 2 milya dola. 516 00:23:16,030 --> 00:23:18,540 Moun sa yo se chenn gwo, men li la toujou kalite inutil 517 00:23:18,540 --> 00:23:21,280 si ou sèlman pran swen sou gwosè, ki jis entwitif 518 00:23:21,280 --> 00:23:24,620 yo ta dwe ki pa Peye-negatif oswa pozitif oswa 0, byen lè sa a, 519 00:23:24,620 --> 00:23:28,884 poukisa w'ap gaspiye 2 milya dola valè posib pou nimewo negatif 520 00:23:28,884 --> 00:23:30,300 si ou pa janm ap ale nan sèvi ak yo? 521 00:23:30,300 --> 00:23:35,350 Se konsa, lè li di siye, kounye a int mwen kapab gen ant 0 ak apeprè 4 milya dola. 522 00:23:35,350 --> 00:23:39,280 >> Se konsa, isit la nan jis yon int C pou rezon nou pa pral jwenn nan jis kounye a kòm 523 00:23:39,280 --> 00:23:42,280 poukisa li nan yon int olye pou nan yon Char, men isit la se 524 00:23:42,280 --> 00:23:44,630 Esansyèl la nan sa k ap pase sou li a, ak kèk nan nou 525 00:23:44,630 --> 00:23:48,340 ta ka lè l sèvi avèk, pou egzanp, nan fonksyon fgetc menm nan pset kat 526 00:23:48,340 --> 00:23:51,580 oswa apre sa, nou pral wè li ankò nan pwoblèm mete senk, 527 00:23:51,580 --> 00:23:55,410 fgetc se bèl paske kòm non an kalite, sòt de arcanely sijere, 528 00:23:55,410 --> 00:23:57,940 li nan yon fonksyon ki vin yon karaktè ak sa, 529 00:23:57,940 --> 00:24:00,690 sa ki nan fondamantalman diferan sou sa n ap fè nan GetString 530 00:24:00,690 --> 00:24:03,110 se nou pa ap sèvi ak skanf nan menm fason an. 531 00:24:03,110 --> 00:24:07,550 Nou ap jis trennen sou vant ansanm etap-pa-etap sou tou sa te itilizatè a tape nan, 532 00:24:07,550 --> 00:24:10,970 paske nou ka toujou asiyen yon sèl Char, e konsa nou kapab toujou san danje 533 00:24:10,970 --> 00:24:15,599 gade nan yon sèl Char nan yon moman, ak majik la kòmanse rive isit la. 534 00:24:15,599 --> 00:24:17,890 Mwen pral woulo liv desann nan mitan an nan fonksyon sa a 535 00:24:17,890 --> 00:24:20,360 jis prezante yon ti tan fonksyon sa a. 536 00:24:20,360 --> 00:24:22,670 Anpil tankou gen nan yon fonksyon malok, gen nan 537 00:24:22,670 --> 00:24:27,740 yon fonksyon realloc kote realloc pèmèt ou aloue yon ti moso nan memwa 538 00:24:27,740 --> 00:24:29,570 , epi fè li pi gwo oswa pi piti. 539 00:24:29,570 --> 00:24:33,060 Istwa Se konsa, lontan kout ak ak yon vag nan men m 'pou jodi a, 540 00:24:33,060 --> 00:24:35,620 konnen ke sa GetString ap fè se li nan sòt 541 00:24:35,620 --> 00:24:39,720 a maji ap grandi oswa réduction tanpon a kòm itilizatè a 542 00:24:39,720 --> 00:24:41,440 kalite nan fisèl li. 543 00:24:41,440 --> 00:24:43,962 >> Se konsa, si itilizatè a kalite yon fisèl ti bout tan, sa a Kòd 544 00:24:43,962 --> 00:24:45,920 sèlman rezèvè ase memwa nan anfòm fisèl la. 545 00:24:45,920 --> 00:24:48,086 Si itilizatè a kenbe sezisman jan mwen te fè l 'ankò e ankò 546 00:24:48,086 --> 00:24:50,330 e ankò, byen, si nan tanpon nan okòmansman sa a gwo 547 00:24:50,330 --> 00:24:53,310 ak pwogram nan reyalize, nan rete tann yon minit, mwen soti nan espas, 548 00:24:53,310 --> 00:24:55,410 li pral a doub gwosè a nan zòn de defans la 549 00:24:55,410 --> 00:24:59,110 ak Lè sa a double gwosè a nan zòn de defans la ak kòd la ki fè double nan, 550 00:24:59,110 --> 00:25:03,170 si nou gade nan li isit la, li nan jis sa a entelijan yon sèl-revètman. 551 00:25:03,170 --> 00:25:06,830 Ou pa ta ka gen pou wè sa a sentaks anvan, men si ou di zetwal egal, 552 00:25:06,830 --> 00:25:10,470 sa a se menm bagay la kòm li di kapasite fwa 2. 553 00:25:10,470 --> 00:25:13,390 Se konsa, li jis kenbe double kapasite a nan zòn de defans la 554 00:25:13,390 --> 00:25:17,480 ak Lè sa a di realloc bay tèt li ke memwa plis ankò. 555 00:25:17,480 --> 00:25:19,720 >> Koulye a, kòm yon sou kote, gen lòt fonksyon nan isit la 556 00:25:19,720 --> 00:25:23,680 ke nou pa pral gade nan nenpòt detay lòt pase yo montre nan GetInt, 557 00:25:23,680 --> 00:25:26,150 nou itilize GetString nan GetInt. 558 00:25:26,150 --> 00:25:28,192 Nou tcheke ke li pa nil, ki, sonje, 559 00:25:28,192 --> 00:25:30,400 se valè a espesyal ki vle di yon bagay ale mal. 560 00:25:30,400 --> 00:25:31,233 Nou ap soti nan memwa. 561 00:25:31,233 --> 00:25:32,310 Pi bon tcheke pou sa. 562 00:25:32,310 --> 00:25:33,710 Apre sa, nou retounen yon valè Sentinel. 563 00:25:33,710 --> 00:25:37,850 Men, mwen pral ranvwaye nan kòmantè yo ke yo poukisa e lè sa a nou sèvi ak sa a kouzen li nan skanf 564 00:25:37,850 --> 00:25:42,100 rele sskanf epi li vire soti ki skanf sskanf, oswa fisèl, 565 00:25:42,100 --> 00:25:45,310 pèmèt ou pran yon gade nan liy la ki te itilizatè a tape nan epi kite ou 566 00:25:45,310 --> 00:25:49,610 analize li esansyèlman ak sa mwen se fè isit la se mwen di sskanf, 567 00:25:49,610 --> 00:25:54,440 analize tou sa itilizatè a gen tape nan, epi fè sèten% mwen, 568 00:25:54,440 --> 00:25:59,250 gen yon nonb antye relatif nan li, epi nou pa pral jwenn nan jodi a egzakteman poukisa gen nan tou 569 00:25:59,250 --> 00:26:03,760 yon% c isit la, men sa nan yon Nutshell pèmèt nou yo detekte si gen itilizatè a tape 570 00:26:03,760 --> 00:26:06,050 nan yon bagay fos apre nimewo a. 571 00:26:06,050 --> 00:26:11,766 Se konsa, rezon ki fè GetInt ak GetString di ou rekoumanse, rekoumanse, rekoumanse 572 00:26:11,766 --> 00:26:13,640 se paske nan tout nan ke kòd nou te ekri nan Liv la 573 00:26:13,640 --> 00:26:17,900 li nan kalite gade nan D 'itilizatè a nan fè si li nan antyèman nimerik 574 00:26:17,900 --> 00:26:21,700 oswa li nan yon k ap flote aktyèl valè pwen oswa renmen an, 575 00:26:21,700 --> 00:26:24,233 depann sou sa ki valè fonksyone w ap itilize. 576 00:26:24,233 --> 00:26:25,060 >> Wou. 577 00:26:25,060 --> 00:26:25,710 OK. 578 00:26:25,710 --> 00:26:27,592 Sa ki te yon gren men pwen an isit la se 579 00:26:27,592 --> 00:26:29,550 ki rezon ki fè yo nou te gen moun wou fòmasyon sou 580 00:26:29,550 --> 00:26:32,880 se paske nan nivo a pi ba a, gen se jis bagay sa yo anpil ki 581 00:26:32,880 --> 00:26:35,674 ka ale mal ke nou te vle preemptively okipe 582 00:26:35,674 --> 00:26:38,090 bagay sa yo sètènman nan la pi bonè semèn nan klas la, 583 00:26:38,090 --> 00:26:42,230 men kounye a ak PSet kat ak senk ak PSet pi lwen pase ou pral wè ke li nan plis l 584 00:26:42,230 --> 00:26:45,570 ou men tou, w ap plis kapab nan rezoud moun kalite pwoblèm 585 00:26:45,570 --> 00:26:47,180 tèt ou. 586 00:26:47,180 --> 00:26:51,770 Nenpòt kesyon sou GetString oswa GetInt? 587 00:26:51,770 --> 00:26:52,630 Yeah? 588 00:26:52,630 --> 00:26:55,130 >> ODYANS: Poukisa ou ta double kapasite a nan zòn de defans la 589 00:26:55,130 --> 00:26:57,630 olye ke sèlman ogmante li pa kantite lajan an egzak? 590 00:26:57,630 --> 00:26:58,100 >> DAVID Malan: Bon kesyon. 591 00:26:58,100 --> 00:27:00,474 Poukisa nou ta double kapasite a nan zòn de defans la kòm opoze 592 00:27:00,474 --> 00:27:02,800 jis ogmante li pa kèk valè konstan? 593 00:27:02,800 --> 00:27:03,900 Se te yon desizyon konsepsyon. 594 00:27:03,900 --> 00:27:08,590 Nou jis deside ke paske li gen tandans fè gen yon ti kras chè tan-ki gen bon konprann yo mande 595 00:27:08,590 --> 00:27:10,440 sistèm nan fonksyone pou memwa, nou pa t ' 596 00:27:10,440 --> 00:27:13,210 vle fini trape nan yon sitiyasyon pou strings gwo 597 00:27:13,210 --> 00:27:14,960 ke nou te mande eksplwatasyon an ankò e ankò 598 00:27:14,960 --> 00:27:17,500 e ankò epi ankò nan siksesyon rapid pou memwa. 599 00:27:17,500 --> 00:27:20,387 Se konsa, nou jis deside, yon ti jan abitrèman men nou espere rezonab, 600 00:27:20,387 --> 00:27:22,720 sa, ou konnen ki sa, se pou yo eseye jwenn devan yo nan tèt nou 601 00:27:22,720 --> 00:27:25,520 ak jis kenbe li pou ke double nou misyon pou minimize kantite lajan an nan fwa 602 00:27:25,520 --> 00:27:29,010 nou gen yo rele malok oswa realloc, men yon jijman manm 603 00:27:29,010 --> 00:27:31,820 rele nan absans la nan konnen sa itilizatè ta ka vle tape nan. 604 00:27:31,820 --> 00:27:33,600 Tou de fason ta ka plozibl. 605 00:27:33,600 --> 00:27:35,430 Joui bon. 606 00:27:35,430 --> 00:27:39,240 >> Se konsa, kite a pran yon gade nan yon koup nan efè segondè lòt kote nan memwa, 607 00:27:39,240 --> 00:27:41,610 bagay ki ka ale mal ak zouti ke ou ka 608 00:27:41,610 --> 00:27:43,880 itilize trape sa yo kalite erè. 609 00:27:43,880 --> 00:27:47,800 Li sanble tout nan nou, menm si check50 pa te di nou kòm anpil, 610 00:27:47,800 --> 00:27:50,050 yo te ekri buggy Kòd depi semèn yon sèl, 611 00:27:50,050 --> 00:27:53,630 menm si tout tès yo check50 pase, e menm si ou menm ak ou TF 612 00:27:53,630 --> 00:27:56,010 se super konfyans ke kòd ou a ap travay kòm gen entansyon. 613 00:27:56,010 --> 00:27:59,190 Te kòd ou a te buggy oswa defekte nan ke tout nan nou, 614 00:27:59,190 --> 00:28:02,540 nan lè l sèvi avèk bibliyotèk la CS50, yo te koule memwa. 615 00:28:02,540 --> 00:28:06,040 Ou ve yo te mande sistèm nan fonksyone pou memwa nan pi fò nan pwogram yo 616 00:28:06,040 --> 00:28:08,850 ou te ekri, men ou te pa janm aktyèlman bay l 'tounen. 617 00:28:08,850 --> 00:28:12,110 Ou te rele GetString ak GetInt ak GetFloat, 618 00:28:12,110 --> 00:28:15,270 Men, se avèk GetString, ou te pa janm rele unGetString oswa Bay 619 00:28:15,270 --> 00:28:19,890 Fisèl Retounen oswa tankou an, men nou te wè ki GetString fè asiyen memwa 620 00:28:19,890 --> 00:28:22,810 pa fason pou malok oswa sa a realloc fonksyon, ki se jis 621 00:28:22,810 --> 00:28:25,670 trè menm jan an nan lespri, e ankò, nou ve yo te 622 00:28:25,670 --> 00:28:28,629 mande sistèm nan fonksyone pou memwa ak memwa ankò e ankò 623 00:28:28,629 --> 00:28:29,670 men pa janm bay li tounen. 624 00:28:29,670 --> 00:28:33,550 >> Koulye a, kòm yon sou kote, li sanble ke lè yon pwogram kit, nan tout memwa a 625 00:28:33,550 --> 00:28:34,870 se otomatikman te libere. 626 00:28:34,870 --> 00:28:36,150 Se konsa, li pa te gen yon kontra gwo. 627 00:28:36,150 --> 00:28:38,590 Li nan pa ale nan kraze nan IDE oswa bagay sa yo ralanti desann, 628 00:28:38,590 --> 00:28:40,670 Men, lè pwogram fè jeneralman genyen fuit memwa 629 00:28:40,670 --> 00:28:42,170 epi yo ap kouri pou yon tan long. 630 00:28:42,170 --> 00:28:45,640 Si ou te janm wè ti kras nan estipid boul plaj nan Mac OS oswa sabliye a 631 00:28:45,640 --> 00:28:51,160 sou Windows kote li nan kalite ralanti desann oswa panse oswa panse 632 00:28:51,160 --> 00:28:53,770 oswa jis reyèlman kòmanse yo ralanti a yon rale, 633 00:28:53,770 --> 00:28:56,960 li trè posib ta ka rezilta a nan yon fwit memwa. 634 00:28:56,960 --> 00:28:59,970 Pwogramasyon yo ki te ekri lojisyèl an w ap itilize 635 00:28:59,970 --> 00:29:03,570 mande sistèm nan fonksyone pou memwa chak kèk minit, chak èdtan. 636 00:29:03,570 --> 00:29:05,570 Men, an si w ap kouri lojisyèl, menm si li nan 637 00:29:05,570 --> 00:29:08,680 minimize nan òdinatè w lan pou èdtan oswa jou sou fen, 638 00:29:08,680 --> 00:29:11,980 ou ka mande pou pi plis ak plis memwa epi pa janm aktyèlman sèvi ak li 639 00:29:11,980 --> 00:29:15,180 e konsa kòd ou a ta ka, oswa pwogram ta ka koule memwa, 640 00:29:15,180 --> 00:29:18,350 epi si ou kòmanse genyen fuit memwa, gen nan mwens memwa pou lòt pwogram, 641 00:29:18,350 --> 00:29:21,220 ak efè a se ralanti tout bagay desann. 642 00:29:21,220 --> 00:29:23,600 >> Koulye a, sa a se pa lwen youn nan pwogram ki pi atròs 643 00:29:23,600 --> 00:29:26,350 w ap gen opòtinite nan kouri nan CS50 tèl degre 644 00:29:26,350 --> 00:29:31,650 kòm pwodiksyon li se menm plis Esoteric pase sonnen nan oswa fè nan oswa nenpòt nan yo lòd, ki 645 00:29:31,650 --> 00:29:35,930 pwogram liy nou te kouri devan men Erezman, entegre nan pwodiksyon li 646 00:29:35,930 --> 00:29:39,810 se kèk konsèy itil ki super pral itil swa pou PSet kat 647 00:29:39,810 --> 00:29:41,510 oswa sètènman pset senk. 648 00:29:41,510 --> 00:29:44,250 Se konsa, Valgrind se yon zouti ki ka itilize yo gade 649 00:29:44,250 --> 00:29:46,930 pou fwit memwa nan pwogram ou an. 650 00:29:46,930 --> 00:29:48,570 Li nan relativman senp nan kouri. 651 00:29:48,570 --> 00:29:51,420 Ou kouri Valgrind ak Lè sa a, menm menm si li nan yon ti kras sil, 652 00:29:51,420 --> 00:29:54,440 priz fwit priz chèk egal plen, ak Lè sa a dot 653 00:29:54,440 --> 00:29:56,320 koupe ak non an nan pwogram ou an. 654 00:29:56,320 --> 00:30:00,010 Se konsa, Valgrind pral Lè sa a kouri pwogram ou an ak nan fen la anpil nan pwogram ou an 655 00:30:00,010 --> 00:30:02,240 kouri anvan li kit ak ba ou yon lòt èd memwa, 656 00:30:02,240 --> 00:30:04,980 li k ap pase yo analize ou pwogram pandan y ap li a te kouri 657 00:30:04,980 --> 00:30:07,740 epi di ou ou te genyen fuit nenpòt memwa ak pi bon toujou, 658 00:30:07,740 --> 00:30:10,610 ou te manyen memwa ki pa t 'fè pati nan ou? 659 00:30:10,610 --> 00:30:13,700 Li pa ka trape tout bagay, men li la trè bon nan pwan pi bagay sa yo. 660 00:30:13,700 --> 00:30:19,700 >> Se konsa, isit la nan yon egzanp ki gen kouri mwen pwogram sa a, li te gen kouri Valgrind, 661 00:30:19,700 --> 00:30:21,470 sou yon pwogram yo rele memwa, ak mwen pral 662 00:30:21,470 --> 00:30:24,730 mete aksan sou liy ki ki finalman nan enterè yo ban nou. 663 00:30:24,730 --> 00:30:27,690 Se konsa, gen nan menm plis distraksyon ke mwen te efase soti nan glise la. 664 00:30:27,690 --> 00:30:30,930 Men, kite a jis wè ki sa sa a pwogram se kapab nan di nou. 665 00:30:30,930 --> 00:30:34,800 Li nan ki kapab di nou bagay sa yo tankou valab ekri nan gwosè 4. 666 00:30:34,800 --> 00:30:38,020 Nan lòt mo, si ou manyen memwa, espesyalman 4 bytes nan memwa 667 00:30:38,020 --> 00:30:40,350 ke ou pa ta dwe gen, Valgrind ka di ou sa. 668 00:30:40,350 --> 00:30:41,660 Envalid ekri nan gwosè 4. 669 00:30:41,660 --> 00:30:43,640 Ou manyen kat bytes ke ou pa ta dwe gen. 670 00:30:43,640 --> 00:30:44,840 Ki kote ou te fè sa? 671 00:30:44,840 --> 00:30:45,900 Sa a se bote a. 672 00:30:45,900 --> 00:30:50,000 Dot memwa liy c 21 a se kote ou vise moute ak Se poutèt sa li a itil. 673 00:30:50,000 --> 00:30:53,410 Anpil tankou gdb, li ka ede pwen ou nan erè a vrè. 674 00:30:53,410 --> 00:30:57,170 >> Koulye a, yon sèl sa a nan yon ti kras plis sil, si se pa konfizyon. 675 00:30:57,170 --> 00:31:01,307 40 bytes nan 1 blòk yo definitivman pèdi nan dosye pèt 1 nan 1. 676 00:31:01,307 --> 00:31:02,140 Ki sa sa vle di? 677 00:31:02,140 --> 00:31:05,920 Oke, li jis vle di ou mande pou 40 bytes epi ou pa janm te bay l 'tounen. 678 00:31:05,920 --> 00:31:08,930 Ou rele malok oswa ou rele GetString ak sistèm nan fonksyone 679 00:31:08,930 --> 00:31:12,450 te ban nou 40 bytes, men ou pa janm libere oswa lage ke memwa, 680 00:31:12,450 --> 00:31:15,400 ak yo dwe jis, nou te pa janm montre w kouman bay tounen memwa. 681 00:31:15,400 --> 00:31:17,910 Vire soti gen nan yon super fonksyon senp rele gratis. 682 00:31:17,910 --> 00:31:21,170 Pran yon sèl agiman, bagay la ou vle libere oswa bay tounen, 683 00:31:21,170 --> 00:31:23,430 men 40 bytes, aparamman, nan pwogram sa a 684 00:31:23,430 --> 00:31:27,300 yo te pèdi nan liy 20 nan memwa dot c. 685 00:31:27,300 --> 00:31:28,650 >> Se konsa, kite a wè pwogram sa a. 686 00:31:28,650 --> 00:31:31,020 Li nan super initil. 687 00:31:31,020 --> 00:31:33,980 Li sèlman demontre erè patikilye sa a. 688 00:31:33,980 --> 00:31:34,920 Se konsa, kite a pran yon gade. 689 00:31:34,920 --> 00:31:39,920 Isit la se prensipal ak prensipal yo, avi, apèl yon fonksyon rele f ak Lè sa a retounen. 690 00:31:39,920 --> 00:31:41,550 Se konsa, pa tout sa ki enteresan. 691 00:31:41,550 --> 00:31:42,664 Ki sa ki f fè? 692 00:31:42,664 --> 00:31:44,330 Avi mwen pa t 'bezwen deranje ak yon pwototip. 693 00:31:44,330 --> 00:31:46,520 Mwen te vle kenbe kòd la kòm minim ke posib. 694 00:31:46,520 --> 00:31:49,530 Se konsa, mwen mete pi wo a prensipal ak f sa a, se amann, sètènman, 695 00:31:49,530 --> 00:31:51,500 pou pwogram kout tankou sa a. 696 00:31:51,500 --> 00:31:56,910 Se konsa, f pa retounen anyen ak fè pa pran anyen, men li fè sa. 697 00:31:56,910 --> 00:31:59,620 Li deklare, anpil tankou nan egzanp lan Binky, 698 00:31:59,620 --> 00:32:02,682 yon konsèy rele x ki k ap pase nan magazen adrès la nan yon int. 699 00:32:02,682 --> 00:32:03,890 Se konsa, sa a, se bò gòch-men yo. 700 00:32:03,890 --> 00:32:07,230 Nan lang angle, ki sa ki la bò men dwat-ou ap fè? 701 00:32:07,230 --> 00:32:09,770 Nenpòt moun ki? 702 00:32:09,770 --> 00:32:13,665 Ki sa ki sa a ap fè pou nou? 703 00:32:13,665 --> 00:32:14,651 Yeah? 704 00:32:14,651 --> 00:32:16,623 >> ODYANS: [fèbl] fwa gwosè a nan yon int 705 00:32:16,623 --> 00:32:19,175 ki se 10 fwa ke [fèbl] 706 00:32:19,175 --> 00:32:20,800 DAVID Malan: Bon ak kite m 'rezime. 707 00:32:20,800 --> 00:32:25,480 Se konsa, asiyen ase espas pou 10 nonm antye relatif oswa 10, sa ki nan gwosè a nan yon int, 708 00:32:25,480 --> 00:32:29,340 li nan kat bytes, se konsa 10 fwa 4 se 40, se konsa ke bò men dwat-ou ke mwen te 709 00:32:29,340 --> 00:32:33,930 make se ban m '40 bytes ak magazen adrès la nan multiple an premye 710 00:32:33,930 --> 00:32:34,940 nan x. 711 00:32:34,940 --> 00:32:38,380 Epi, koulye a anfen, ak isit la a kote pwogram sa a se buggy, sa ki nan 712 00:32:38,380 --> 00:32:41,540 mal ak liy 21 ki baze sou ki lojik? 713 00:32:41,540 --> 00:32:45,197 714 00:32:45,197 --> 00:32:46,280 Ki sa ki nan mal ak liy 21? 715 00:32:46,280 --> 00:32:46,780 Yeah? 716 00:32:46,780 --> 00:32:49,550 ODYANS: Ou pa kapab endèks nan x [fèbl]. 717 00:32:49,550 --> 00:32:50,300 DAVID Malan: Yeah. 718 00:32:50,300 --> 00:32:52,270 Mwen pa ta dwe endèks nan x tankou sa. 719 00:32:52,270 --> 00:32:53,850 Se konsa, syntactically, ki nan OK. 720 00:32:53,850 --> 00:32:56,990 Ki sa ki nan bèl se, anpil tankou ou ka trete non an nan yon etalaj 721 00:32:56,990 --> 00:33:01,080 tankou si li nan yon konsèy, Menm jan an tou ou ka trete yon konsèy tankou si li nan 722 00:33:01,080 --> 00:33:06,425 yon etalaj, Se poutèt sa mwen kapab syntactically di x bracket yon bagay, x bracket mwen, 723 00:33:06,425 --> 00:33:07,800 men 10 an se yon pwoblèm. 724 00:33:07,800 --> 00:33:09,096 Poukisa? 725 00:33:09,096 --> 00:33:10,910 >> ODYANS: Paske li pa anndan an. 726 00:33:10,910 --> 00:33:12,390 >> DAVID Malan: Li pa andedan ki ti moso nan memwa. 727 00:33:12,390 --> 00:33:15,306 Ki sa ki nan valè a pi gwo mwen ta dwe dwe mete nan sa yo parantèz kare? 728 00:33:15,306 --> 00:33:16,870 9, 0 a 9. 729 00:33:16,870 --> 00:33:18,160 Paske nan zewo Indexing. 730 00:33:18,160 --> 00:33:20,190 Se konsa, 0 jiska 9 ta dwe amann. 731 00:33:20,190 --> 00:33:23,960 Sipò 10 se pa byen ak sa ki men, sonje menm si, chak fwa 732 00:33:23,960 --> 00:33:27,017 Mwen sanble yo eseye fè CS50 IDE aksidan lè ou tape nan valè fos, 733 00:33:27,017 --> 00:33:29,100 li pa toujou kolabore, ak tout bon, ou souvan 734 00:33:29,100 --> 00:33:31,460 jwenn chans jis paske nan sistèm opere pa fè sa 735 00:33:31,460 --> 00:33:35,467 remake ke w te janm konsa yon ti kras pase kèk ti moso nan memwa, 736 00:33:35,467 --> 00:33:38,300 paske ou te rete nan teknikman segman ou, men plis sou sa 737 00:33:38,300 --> 00:33:40,940 nan yon klas sistèm operasyon, ak pou yon bagay tankou sa 738 00:33:40,940 --> 00:33:43,000 te kapab trè fasil ale detèkte. 739 00:33:43,000 --> 00:33:48,120 Pwogram ou an pa janm ale nan aksidan toujou men petèt yon fwa nan yon ti moman. 740 00:33:48,120 --> 00:33:50,610 >> Se konsa, kite a eseye Valgrind sou sa a, ak isit la a 741 00:33:50,610 --> 00:33:52,870 kote nou pral jwenn akable pa pwodiksyon an ti tan. 742 00:33:52,870 --> 00:34:00,810 Se konsa, fè memwa fwit Valgrind chèk egal plen koupe dot memwa. 743 00:34:00,810 --> 00:34:03,040 Ak isit la poutèt sa mwen te pwomèt sa a ta sitèlman chaj. 744 00:34:03,040 --> 00:34:05,700 Men sa Valgrind, isit la nan ki sa yon pwogramè, gen kèk ane de sa- 745 00:34:05,700 --> 00:34:08,469 deside li ta yon bon lide pou pwodiksyon an sanble. 746 00:34:08,469 --> 00:34:09,750 Se konsa nou fè sans nan sa a. 747 00:34:09,750 --> 00:34:13,120 Se konsa, tout wout la sou bò gòch bò pou okenn rezon bon 748 00:34:13,120 --> 00:34:16,620 se pwosesis ID a nan pwogram nan nou jis kouri, idantifyan a inik 749 00:34:16,620 --> 00:34:18,030 pou pwogram nan nou jis kouri. 750 00:34:18,030 --> 00:34:19,738 Nou efase ki soti nan glise nan, men gen 751 00:34:19,738 --> 00:34:22,190 se kèk enfòmasyon itil nan isit la. 752 00:34:22,190 --> 00:34:24,684 >> Se pou nou woulo liv moute sou tèt la anpil. 753 00:34:24,684 --> 00:34:25,600 Isit la nan kote nou te kòmanse. 754 00:34:25,600 --> 00:34:27,040 Se konsa, li pa tout sa ki anpil pwodiksyon. 755 00:34:27,040 --> 00:34:30,429 Isit la nan ki ekri valab nan gwosè 4 sou liy 21. 756 00:34:30,429 --> 00:34:31,760 Oke, sa ki te liy 21? 757 00:34:31,760 --> 00:34:34,500 Liy 21 te egzakteman sa a epi li fè sans 758 00:34:34,500 --> 00:34:37,290 ke mwen se nan valables ekri 4 bytes paske mwen se 759 00:34:37,290 --> 00:34:40,389 ap eseye mete nonb antye ki pè sa a, ki ta ka anyen, 760 00:34:40,389 --> 00:34:42,370 li jis k ap pase yo zewo, men mwen ap eseye 761 00:34:42,370 --> 00:34:44,940 yo mete l 'nan yon kote ki pa fè pati nan mwen. 762 00:34:44,940 --> 00:34:50,900 Anplis, desann isit la, 40 bytes nan yon sèl blòk yo definitivman pèdi nan dosye 1. 763 00:34:50,900 --> 00:34:56,500 Sa a se paske lè m 'rele malok isit la, pa janm mwen aktyèlman libere memwa a. 764 00:34:56,500 --> 00:34:58,140 >> Se konsa, ki jan nou ka ranje sa a? 765 00:34:58,140 --> 00:35:02,970 Kite m 'ale pi devan epi yon ti kras pi an sekirite gen ak fè 9 gen ak kite m 'isit la gratis x. 766 00:35:02,970 --> 00:35:04,820 Sa a se fonksyon an nouvo pou jodi a. 767 00:35:04,820 --> 00:35:11,520 Si m 'kounye a relance fè koupe dot memwa, se pou yo kouri Valgrind sou li ankò, 768 00:35:11,520 --> 00:35:14,990 maksimize fenèt m 'ak frape Antre nan. 769 00:35:14,990 --> 00:35:16,900 Koulye a, li la bon. 770 00:35:16,900 --> 00:35:19,590 Yo antere bon nouvèl la nan tout nan pwodiksyon sa a. 771 00:35:19,590 --> 00:35:20,810 Tout blòk pil wòch yo te gratis. 772 00:35:20,810 --> 00:35:23,604 Nou pral tounen vin jwenn sa pil wòch la se, men pa gen okenn fwit yo se posib. 773 00:35:23,604 --> 00:35:25,520 Se konsa, sa a se jis yon lòt zouti pou twous zouti ou 774 00:35:25,520 --> 00:35:30,220 ak kote ou ka kòmanse jwenn kounye a erè tankou sa. 775 00:35:30,220 --> 00:35:34,532 >> Men, kite a wè sa ki plis kapab ale mal isit la. 776 00:35:34,532 --> 00:35:38,890 Se pou nou tranzisyon kounye a aktyèlman rezoud yon pwoblèm. 777 00:35:38,890 --> 00:35:42,440 Kòm yon sou kote, si sa a pral soulaje yon ti jan nan konfizyon oswa tansyon, 778 00:35:42,440 --> 00:35:43,430 sa a se kounye a amizan. 779 00:35:43,430 --> 00:35:46,400 780 00:35:46,400 --> 00:35:46,900 Yeah. 781 00:35:46,900 --> 00:35:49,040 Sa a trè bon. 782 00:35:49,040 --> 00:35:50,890 Paske endikasyon yo adrès ak adrès 783 00:35:50,890 --> 00:35:53,098 yo jeneralman pa konvansyon ekri ak ekzadesimal. 784 00:35:53,098 --> 00:35:54,650 Ha, ha, sa a se komik kounye a. 785 00:35:54,650 --> 00:35:58,390 Kanmèm, kidonk kite a kounye a aktyèlman rezoud yon pwoblèm. 786 00:35:58,390 --> 00:36:00,840 Sa a te gen super, super ba-nivo konsa byen lwen, 787 00:36:00,840 --> 00:36:03,950 epi nou ka aktyèlman fè itil bagay ak sa yo detay nan nivo ki ba. 788 00:36:03,950 --> 00:36:06,710 >> Se konsa, nou prezante yon kèk semèn Anons sa pibliye depi nosyon de yon etalaj. 789 00:36:06,710 --> 00:36:09,177 Yon etalaj te bèl paske li difisil a netwaye Kòd nou an 790 00:36:09,177 --> 00:36:11,760 paske si nou te vle ekri yon pwogram ak elèv miltip 791 00:36:11,760 --> 00:36:15,270 oswa non miltip ak kay ak dortwar ak kolèj ak nan tout sa, 792 00:36:15,270 --> 00:36:19,430 nou te ka magazen tout bagay plis propr andedan nan yon etalaj. 793 00:36:19,430 --> 00:36:23,039 Men, pwopoze yon sèl inconvénient nan yon etalaj konsa byen lwen. 794 00:36:23,039 --> 00:36:26,080 Menm si ou pa te soufri li tèt ou nan yon pwogram, jis enstenktiv, 795 00:36:26,080 --> 00:36:30,870 ki sa ki yon move bagay sou yon etalaj, petèt? 796 00:36:30,870 --> 00:36:32,337 Mwen tande kèk murmura. 797 00:36:32,337 --> 00:36:34,170 ODYANS: Li trè difisil chanje gwosè la. 798 00:36:34,170 --> 00:36:36,128 DAVID Malan: Li trè difisil chanje gwosè la. 799 00:36:36,128 --> 00:36:38,660 Ou pa ka chanje gwosè a nan yon etalaj, an reyalite, se pou chak 800 00:36:38,660 --> 00:36:43,040 nan C. Ou ka asiyen yon lòt etalaj, deplase tout bagay soti nan yon sèl la fin vye granmoun 801 00:36:43,040 --> 00:36:45,380 nan nouvo a, e kounye a, gen kèk espas anplis, 802 00:36:45,380 --> 00:36:47,469 men li pa nan renmen yon lang tankou Java oswa Piton 803 00:36:47,469 --> 00:36:49,760 oswa nenpòt ki kantite lòt lang ak ki kèk nan nou 804 00:36:49,760 --> 00:36:52,070 ta ka dwe abitye kote ou ka jis kenbe ajoute bagay 805 00:36:52,070 --> 00:36:53,930 anons nozim nan fen a nan yon etalaj. 806 00:36:53,930 --> 00:36:57,880 Lè ou gen yon etalaj de gwosè 6, se sa ki gwosè li, 807 00:36:57,880 --> 00:37:01,970 ak anpil tankou lide a pi bonè li te gen yon tanpon ki gen yon gwosè sèten, 808 00:37:01,970 --> 00:37:05,940 ou gen devine soti nan pòtay lavil la sa ki gwosè ou vle l 'yo dwe? 809 00:37:05,940 --> 00:37:07,880 Si ou devine twò gwo, w ap gaspiye espas. 810 00:37:07,880 --> 00:37:10,950 Si ou devine twò piti, ou pa ka magazen ke done, omwen 811 00:37:10,950 --> 00:37:12,940 san yo pa yon anpil plis travay. 812 00:37:12,940 --> 00:37:18,180 >> Se konsa, jodi a, gras a endikasyon, nou kapab kòmanse wanga ansanm pwòp koutim nou 813 00:37:18,180 --> 00:37:20,989 estrikti done, ak nan reyalite, isit la se yon bagay 814 00:37:20,989 --> 00:37:23,030 ki sanble yon ti kras plis skre nan zye premye, 815 00:37:23,030 --> 00:37:26,440 men sa a se ki sa nou pral rele yon lye lis, ak li yo kalite non sentetiz 816 00:37:26,440 --> 00:37:26,940 li. 817 00:37:26,940 --> 00:37:29,550 Li se yon lis nimewo, oswa nan ka sa a, yon lis ki gen nimewo, 818 00:37:29,550 --> 00:37:33,480 men li te kapab fè yon lis ki gen anyen, men li nan lye ansanm pa fason pou flèch, 819 00:37:33,480 --> 00:37:36,380 ak jis pran yon devine ak sa teknik 820 00:37:36,380 --> 00:37:38,310 nou pral kapab kout zegwi ansanm, 821 00:37:38,310 --> 00:37:42,540 sòt de tankou pòpkòn ak yon fil, yon lye lis rektang isit la? 822 00:37:42,540 --> 00:37:43,936 Nimewo li yo? 823 00:37:43,936 --> 00:37:45,560 Ki sa ki nan karakteristik nan lang kache? 824 00:37:45,560 --> 00:37:46,350 >> ODYANS: Yon konsèy. 825 00:37:46,350 --> 00:37:47,308 >> DAVID Malan: Yon konsèy. 826 00:37:47,308 --> 00:37:51,700 Se konsa, chak nan flèch sa yo isit la reprezante yon konsèy oswa jis yon adrès. 827 00:37:51,700 --> 00:37:54,590 Se konsa, nan lòt mo, si mwen vle nan magazen yon lis nimewo, 828 00:37:54,590 --> 00:37:59,040 Mwen pa ka jis magazen li si mwen vle kapasite nan grandi ak retresi 829 00:37:59,040 --> 00:38:00,990 mwen estrikti done nan yon etalaj. 830 00:38:00,990 --> 00:38:03,000 Se konsa, mwen bezwen gen yon ti kras plis bagay konplike, 831 00:38:03,000 --> 00:38:05,720 men remake ke sa a foto kalite sijere 832 00:38:05,720 --> 00:38:08,650 ke si ou te jis te resevwa ti kras fil konekte tout bagay ansanm, 833 00:38:08,650 --> 00:38:13,100 pwobableman se pa sa ki difisil yo fè espas nan ant de nan moun rektang 834 00:38:13,100 --> 00:38:16,750 oswa de nan tout sa yo nœuds, menm jan nou pral kòmanse rele yo, mete nan yon nouvo ne, 835 00:38:16,750 --> 00:38:19,547 ak Lè sa a ak kèk nouvo fil, jis twou twa nœuds yo ansanm, 836 00:38:19,547 --> 00:38:22,880 youn nan premye, yon sèl ki sot pase a, ak yon sèl la ke ou jis mete nan mitan yo. 837 00:38:22,880 --> 00:38:26,000 >> Ak tout bon yon lis lye, kontrèman yon etalaj, se dinamik. 838 00:38:26,000 --> 00:38:27,840 Li ka grandi ak li kapab retresi ak ou pa fè sa 839 00:38:27,840 --> 00:38:32,434 gen konnen oswa pran swen nan avanse ki jan done lajan ou ap ale nan dwe estoke, 840 00:38:32,434 --> 00:38:35,600 men li vire soti nou gen yo dwe yon ti kras atansyon sou jan yo ka aplike sa a. 841 00:38:35,600 --> 00:38:39,070 Se konsa, premye kite la konsidere ki jan nou aplike youn nan sa yo rektang ti kras. 842 00:38:39,070 --> 00:38:40,690 Li fasil aplike yon int. 843 00:38:40,690 --> 00:38:44,000 Ou jis di int n ak Lè sa a ou jwenn 4 bytes pou yon int, 844 00:38:44,000 --> 00:38:49,089 men ki jan mwen jwenn yon int, rele l 'n, ak Lè sa a yon konsèy, se pou yo rele l 'vini an. 845 00:38:49,089 --> 00:38:50,880 Nou te kapab rele sa yo bagay anyen nou vle 846 00:38:50,880 --> 00:38:53,590 men mwen bezwen yon estrikti done koutim. 847 00:38:53,590 --> 00:38:54,257 Yeah? 848 00:38:54,257 --> 00:38:57,020 >> ODYANS: comercial [fèbl]. 849 00:38:57,020 --> 00:39:00,940 >> DAVID Malan: Se konsa, comercial nou pral itilize yo jwenn adrès ki nan yon ne ki kapab. 850 00:39:00,940 --> 00:39:02,740 Men, nou bezwen yon lòt karakteristik nan C yo nan lòd 851 00:39:02,740 --> 00:39:06,700 ban m 'kapasite a yo kreye sa a rektang koutim, sa a koutim 852 00:39:06,700 --> 00:39:08,919 varyab si ou pral, nan memwa. 853 00:39:08,919 --> 00:39:09,710 ODYANS: Yon struct. 854 00:39:09,710 --> 00:39:10,626 DAVID Malan: Yon struct. 855 00:39:10,626 --> 00:39:14,310 Sonje byen soti nan semèn pase a, nou prezante struct, sa a mo kle relativman senp 856 00:39:14,310 --> 00:39:16,254 ki pèmèt nou fè bagay sa yo tankou sa a. 857 00:39:16,254 --> 00:39:18,420 C pa t 'vini ak yon done estrikti rele elèv yo. 858 00:39:18,420 --> 00:39:22,190 Li vini ak int ak flote ak Char ak sa yo, men li pa vini ak elèv, 859 00:39:22,190 --> 00:39:26,750 men nou ka kreye yon kalite done elèv, yon estrikti elèv, ak sentaks sa a 860 00:39:26,750 --> 00:39:27,250 isit la. 861 00:39:27,250 --> 00:39:28,350 Men, ou pral wè sa a ankò e ankò. 862 00:39:28,350 --> 00:39:30,426 Se konsa, pa enkyete sou memorize mo kle sa yo, 863 00:39:30,426 --> 00:39:33,300 men mo kle a sa a, se enpòtan an se jis lefèt ke nou te di struct 864 00:39:33,300 --> 00:39:37,590 ak Lè sa a nou rele l 'elèv ak andedan elèv la te yon non ak yon kay 865 00:39:37,590 --> 00:39:39,390 oswa yon dòtwa oswa renmen an. 866 00:39:39,390 --> 00:39:41,980 >> Se konsa, kounye a jodi a, se pou yo pwopoze sa a. 867 00:39:41,980 --> 00:39:45,240 Mwen te ajoute yon kèk mo, men si mwen vle aplike rektang sa a sa a, se 868 00:39:45,240 --> 00:39:48,440 te resevwa tou de yon int ak yon konsèy, ou konnen ki sa, mwen 869 00:39:48,440 --> 00:39:51,540 ale nan deklare yon struct rele ne. 870 00:39:51,540 --> 00:39:55,630 Mwen menm tou, andedan nan li, pral di ke yon ne, rektang sa a, gen yon int 871 00:39:55,630 --> 00:39:59,730 epi n ap rele l 'n ak li gen yon konsèy kap vini an. 872 00:39:59,730 --> 00:40:02,540 Lè sa a se yon ti kras sil, men si ou panse sou li, 873 00:40:02,540 --> 00:40:07,300 flèch yo ki te nan foto a yon ti moman Anons sa pibliye depi yo se nan ki kalite done? 874 00:40:07,300 --> 00:40:12,330 Ki kote chak nan sa yo flèch ap montre nan sa di ki kalite estrikti done? 875 00:40:12,330 --> 00:40:14,332 Li pa nan lonje dwèt jis yon int se pou chak. 876 00:40:14,332 --> 00:40:16,165 Li nan montre nan nan tout bagay rektangilè 877 00:40:16,165 --> 00:40:18,720 e ke bagay rektangilè, nou te di, yo rele yon ne. 878 00:40:18,720 --> 00:40:21,720 Se konsa, nou kalite gen yo recursive defini sa a tankou 879 00:40:21,720 --> 00:40:26,270 ki yon ne, nou va reponn: pral gen yon int rele n 880 00:40:26,270 --> 00:40:31,070 ak yon konsèy rele pwochen an ak di ki kalite estrikti done yo ki 881 00:40:31,070 --> 00:40:35,770 ki pwen konsèy se aparamman pral fè struct ne. 882 00:40:35,770 --> 00:40:41,550 >> Se konsa, sa a se annoyingly sil ak jis yo dwe pedant, 883 00:40:41,550 --> 00:40:44,100 rezon an pou kisa nou pa kapab jis di sa a, ki franchman 884 00:40:44,100 --> 00:40:46,860 sanble yon anpil plis lizib, se paske Sonje byen, C li 885 00:40:46,860 --> 00:40:48,710 bagay anwo jouk anba, gòch a dwat. 886 00:40:48,710 --> 00:40:54,120 Li pa jiskaske nou jwenn nan virgules ki ne la mo kle aktyèlman egziste. 887 00:40:54,120 --> 00:40:57,980 Se konsa, si nou vle gen sa a sòt de conjoncture referans andedan nan done yo 888 00:40:57,980 --> 00:41:02,120 estrikti, nou dwe fè sa a, kote nou di struct ne nan tèt la, ki 889 00:41:02,120 --> 00:41:06,770 ba nou yon fason ki pi long dekri sa a bagay, Lè sa a, andedan nou di struct ne, 890 00:41:06,770 --> 00:41:09,560 ak Lè sa a nan liy lan trè dènye nou di, tout dwa, C, nan chemen an, 891 00:41:09,560 --> 00:41:12,060 jis rele modi sa a tout antye bagay yon ne epi yo sispann 892 00:41:12,060 --> 00:41:14,360 lè l sèvi avèk mo kle a struct tout ansanm. 893 00:41:14,360 --> 00:41:18,030 Se konsa, sa a se jis sòt de yon Massachusetts Institute of Technology Trick ki finalman pèmèt nou kreye 894 00:41:18,030 --> 00:41:21,370 yon bagay ki sanble egzakteman menm jan ak sa a. 895 00:41:21,370 --> 00:41:25,010 >> Se konsa, si nou sipoze nou kapab kounye a aplike bagay sa a nan C, 896 00:41:25,010 --> 00:41:28,040 ki jan nou aktyèlman kòmanse Travelers sa a? 897 00:41:28,040 --> 00:41:32,360 Oke, an reyalite, tout sa nou dwe fè se repekte de gòch a dwat ak jis 898 00:41:32,360 --> 00:41:35,960 kalite Insert nœuds ou efase nœuds oswa rechèch pou bagay sa yo tout kote nou vle, 899 00:41:35,960 --> 00:41:39,560 men yo fè sa, se pou yo ale pi devan epi fè bagay sa yo yon ti kras pi plis reyèl paske sa a 900 00:41:39,560 --> 00:41:42,560 te gen super ba-nivo konsa byen lwen. 901 00:41:42,560 --> 00:41:45,700 Èske nenpòt moun ki literalman renmen yo dwe an premye? 902 00:41:45,700 --> 00:41:46,200 OK. 903 00:41:46,200 --> 00:41:47,092 Vini non sou yo. 904 00:41:47,092 --> 00:41:47,800 Ki sa ki nan non ou? 905 00:41:47,800 --> 00:41:48,499 >> DAVID: David. 906 00:41:48,499 --> 00:41:49,290 DAVID Malan: David. 907 00:41:49,290 --> 00:41:49,998 Nice al kontre ou. 908 00:41:49,998 --> 00:41:50,960 Mwen tou. 909 00:41:50,960 --> 00:41:52,450 Tout dwa. 910 00:41:52,450 --> 00:41:53,990 Apre sa, nou bezwen yon nimewo 9. 911 00:41:53,990 --> 00:41:55,240 Pa kòm bon jan premye, petèt. 912 00:41:55,240 --> 00:41:56,430 OK, nimewo 9. 913 00:41:56,430 --> 00:41:59,667 Yon nimewo 17, tanpri. 914 00:41:59,667 --> 00:42:01,000 Kite m 'ale tounen yon ti kras pi lwen. 915 00:42:01,000 --> 00:42:03,980 Nimewo 22, tanpri, ak ki jan sou pi lwen tounen 916 00:42:03,980 --> 00:42:06,344 si mwen ka wè nenpòt ki men ak tout limyè a oswa ki pa gen. 917 00:42:06,344 --> 00:42:08,010 Yon moun k ap travay kòm volontè la a. 918 00:42:08,010 --> 00:42:08,968 Ou vle vini? 919 00:42:08,968 --> 00:42:10,450 Avanbra ou a ap forséman ap moute. 920 00:42:10,450 --> 00:42:12,340 OK, 17. 921 00:42:12,340 --> 00:42:13,690 22. 922 00:42:13,690 --> 00:42:15,120 26 la ap vini desann. 923 00:42:15,120 --> 00:42:18,450 Èske nenpòt lòt moun renmen forcefully-- Vini non sou yo. 924 00:42:18,450 --> 00:42:21,030 Yon volontè vrè. 925 00:42:21,030 --> 00:42:23,330 >> Se konsa, trè byen vit, si ou nèg te kapab fè aranjman pou 926 00:42:23,330 --> 00:42:26,550 nou jis tankou nœuds yo sou ekran an. 927 00:42:26,550 --> 00:42:27,510 Mèsi poutèt ou. 928 00:42:27,510 --> 00:42:29,234 Men, ou pral 26. 929 00:42:29,234 --> 00:42:30,650 Tout introductions dwa ak rapid. 930 00:42:30,650 --> 00:42:32,139 Se konsa, mwen David, epi ou yo tou? 931 00:42:32,139 --> 00:42:32,680 DAVID: David. 932 00:42:32,680 --> 00:42:33,721 DAVID Malan: Epi ou yo ye? 933 00:42:33,721 --> 00:42:34,229 Jake: Jake. 934 00:42:34,229 --> 00:42:34,729 Sue: Sue. 935 00:42:34,729 --> 00:42:35,229 ALEX: Alex. 936 00:42:35,229 --> 00:42:36,475 RAPHAEL: Raphael. 937 00:42:36,475 --> 00:42:37,100 TAYLOR: Taylor. 938 00:42:37,100 --> 00:42:37,466 DAVID Malan: Taylor. 939 00:42:37,466 --> 00:42:37,590 Ekselan. 940 00:42:37,590 --> 00:42:39,810 Se konsa, sa yo, se volontè nou pou jodi a ak ale pi devan 941 00:42:39,810 --> 00:42:43,090 ak chanjman yon ti kras fason sa a, ak jis ale pi devan epi kenbe 942 00:42:43,090 --> 00:42:47,024 kenbe nimewo ou jan ou ye oswa ou premye siy ak lè l sèvi avèk men gòch ou, 943 00:42:47,024 --> 00:42:48,940 ale pi devan ak jis aplike flèch sa yo, jis 944 00:42:48,940 --> 00:42:51,360 se konsa ke men gòch ou se literalman montre nan tou sa ou ta dwe pwen 945 00:42:51,360 --> 00:42:54,610 a, epi bay tèt ou kèk chanm pou ke nou ka vizyèlman wè bra ou aktyèlman 946 00:42:54,610 --> 00:42:58,120 pwente, epi ou ka jis pwen sòt de nan tè a se amann. 947 00:42:58,120 --> 00:43:03,040 >> Se konsa, isit la nou gen yon lis lye nan yon sèl, de, twa, kat, senk nœuds okòmansman, 948 00:43:03,040 --> 00:43:05,860 ak avi nou gen sa a espesyal konsèy nan kòmansman an ki moun ki nan 949 00:43:05,860 --> 00:43:09,770 kle paske nou gen nan kenbe tras nan tout lis la longè yon jan kanmenm. 950 00:43:09,770 --> 00:43:13,590 Mesye sa yo, menm si yo ap kite a dwat, tounen nan tounen nan memwa, 951 00:43:13,590 --> 00:43:15,950 yo ka aktyèlman ap nenpòt kote nan memwa òdinatè a. 952 00:43:15,950 --> 00:43:18,240 Se konsa, mesye sa yo te kapab fè kanpe nenpòt kote sou sèn nan 953 00:43:18,240 --> 00:43:20,960 e ke sa a amann, toutotan yo ap aktyèlman montre nan youn ak lòt, 954 00:43:20,960 --> 00:43:22,770 men yo kenbe bagay sa yo pwòp epi ki senp, nou pral 955 00:43:22,770 --> 00:43:25,728 jis trase yo gòch a dwat tankou sa a, men ta kapab genyen twou vid ki genyen masiv 956 00:43:25,728 --> 00:43:26,790 nan ant moun nœuds. 957 00:43:26,790 --> 00:43:30,710 >> Koulye a, si mwen vle aktyèlman insert kèk nouvo valè, se pou yo ale pi devan epi fè sa. 958 00:43:30,710 --> 00:43:33,720 Nou gen yon opòtinite kounye a yo chwazi yon lòt ne. 959 00:43:33,720 --> 00:43:39,820 Di kite la kòmanse koupe ak mallocing 55. 960 00:43:39,820 --> 00:43:41,320 Èske yon moun lide ke yo te malok? 961 00:43:41,320 --> 00:43:42,280 OK, vini sou yo. 962 00:43:42,280 --> 00:43:42,992 Ki sa ki nan non ou? 963 00:43:42,992 --> 00:43:43,700 RAINBOW: Rainbow. 964 00:43:43,700 --> 00:43:44,050 DAVID Malan: Rainbow? 965 00:43:44,050 --> 00:43:44,810 Tout dwa. 966 00:43:44,810 --> 00:43:46,600 Malok Rainbow. 967 00:43:46,600 --> 00:43:47,450 Vini non sou yo. 968 00:43:47,450 --> 00:43:51,610 Se konsa, kounye a nou gen mande tèt nou algorithmically kote nou ka mete 55. 969 00:43:51,610 --> 00:43:53,610 Se konsa, tout moun nan nou konnen, evidamman, kote li te pwobableman 970 00:43:53,610 --> 00:43:55,401 ki dwe si nou ap eseye kenbe sa a Ranje 971 00:43:55,401 --> 00:43:58,299 epi si ou nèg te kapab pran yon sèl etap tounen pou nou pa tonbe 972 00:43:58,299 --> 00:43:59,590 sèn nan, ki ta ka gwo. 973 00:43:59,590 --> 00:44:01,420 Se konsa, aktyèlman, Rainbow, kòmanse sou isit la avè m ', 974 00:44:01,420 --> 00:44:04,200 paske nou kòm òdinatè a kounye a kapab sèlman wè yon varyab nan yon tan. 975 00:44:04,200 --> 00:44:05,190 Se konsa, si sa a se ne la an premye. 976 00:44:05,190 --> 00:44:07,160 Avi li pa yon ne, li se jis yon konsèy, 977 00:44:07,160 --> 00:44:10,270 ak Se poutèt sa li te trase yo dwe sèlman gwosè a nan yon konsèy, pa 978 00:44:10,270 --> 00:44:11,780 youn nan moun ki rektang plen. 979 00:44:11,780 --> 00:44:16,650 Se konsa, nou ap ale nan tcheke nan chak iterasyon se 55 mwens pase 9? 980 00:44:16,650 --> 00:44:17,150 No 981 00:44:17,150 --> 00:44:19,060 Se 55 mwens pase 17? 982 00:44:19,060 --> 00:44:19,720 No 983 00:44:19,720 --> 00:44:20,800 Mwens pase 22? 984 00:44:20,800 --> 00:44:22,020 Mwens pase 26? 985 00:44:22,020 --> 00:44:23,390 Mwens pase 34? 986 00:44:23,390 --> 00:44:25,890 Se konsa, kounye a, evidamman Rainbow fè pati nan fen an. 987 00:44:25,890 --> 00:44:27,270 Se konsa, yo dwe klè, e ki sa non ou, Taylor te ye? 988 00:44:27,270 --> 00:44:27,895 >> TAYLOR: Taylor. 989 00:44:27,895 --> 00:44:32,510 DAVID Malan: Se konsa, nan mitan Taylor a men gòch ak men Rainbow nan isit la, 990 00:44:32,510 --> 00:44:38,324 men ki gen bezwen nan pwen nan sa ki nan lòd insert 55 nan lis sa a? 991 00:44:38,324 --> 00:44:39,240 Ki sa nou bezwen fè? 992 00:44:39,240 --> 00:44:39,700 Yeah? 993 00:44:39,700 --> 00:44:41,140 >> ODYANS: men Taylor a bezwen nan pwen kite. 994 00:44:41,140 --> 00:44:41,680 >> DAVID Malan: Egzakteman. 995 00:44:41,680 --> 00:44:43,800 Se konsa, mete yon ne nan nan fen lis la 996 00:44:43,800 --> 00:44:47,140 se trè senp paske Taylor jis gen nan pwen, olye pou yo nan tè a 997 00:44:47,140 --> 00:44:49,640 oswa nou pral rele li nil, nil se sòt de absans la 998 00:44:49,640 --> 00:44:51,640 a yon konsèy oswa yon espesyal zewo konsèy, w ap 999 00:44:51,640 --> 00:44:53,740 ale nan pwen ak gòch ou men nan Rainbow ak Lè sa a Rainbow, 1000 00:44:53,740 --> 00:44:55,910 kote yo ta dwe gòch ou men pwobableman pwen? 1001 00:44:55,910 --> 00:44:56,570 Desann. 1002 00:44:56,570 --> 00:45:00,140 Li pa bon si men l 'se sòt a lonje dwèt sou isit la oswa sòt de nenpòt 1003 00:45:00,140 --> 00:45:00,640 ki fason. 1004 00:45:00,640 --> 00:45:02,407 Sa ta dwe konsidere se yon valè fatra, 1005 00:45:02,407 --> 00:45:04,240 men si li lonje dwèt nan kèk valè li te ye, nou pral 1006 00:45:04,240 --> 00:45:07,360 rele li zewo oswa nil, sa a, se OK paske nou gen yon tèm nan sa a 1007 00:45:07,360 --> 00:45:09,390 e nou konnen lis la kounye a se konplè. 1008 00:45:09,390 --> 00:45:11,550 >> Se konsa, sa nan yon lòt relativman senp ka? 1009 00:45:11,550 --> 00:45:13,125 Te kapab nou malok 5? 1010 00:45:13,125 --> 00:45:14,010 Vini non sou yo. 1011 00:45:14,010 --> 00:45:14,782 Ki sa ki nan non ou? 1012 00:45:14,782 --> 00:45:15,490 TIFFANY: Tiffany. 1013 00:45:15,490 --> 00:45:16,000 DAVID Malan: Mwen regrèt? 1014 00:45:16,000 --> 00:45:16,470 TIFFANY: Tiffany. 1015 00:45:16,470 --> 00:45:16,880 DAVID Malan: Tiffany. 1016 00:45:16,880 --> 00:45:17,110 Tout dwa. 1017 00:45:17,110 --> 00:45:19,071 Tiffany te malloced ak valè a 5. 1018 00:45:19,071 --> 00:45:19,570 Vini non sou yo. 1019 00:45:19,570 --> 00:45:23,820 Sa a yon sèl nan relativman fasil tou, men se pou yo konsidere lòd nan operasyon kounye a. 1020 00:45:23,820 --> 00:45:25,820 Li te trè fasil ak Taylor nan fen an. 1021 00:45:25,820 --> 00:45:30,302 Nimewo 5 se nan kou mwens pase 9, e konsa nou gen David, nou gen Tiffany, 1022 00:45:30,302 --> 00:45:31,260 ak sa ki non ou te ye? 1023 00:45:31,260 --> 00:45:31,680 >> Jake: Jake. 1024 00:45:31,680 --> 00:45:32,470 >> DAVID Malan: Jake. 1025 00:45:32,470 --> 00:45:34,300 Tiffany, Jake, ak David. 1026 00:45:34,300 --> 00:45:36,580 Gen men yo ta dwe mete ajou premye? 1027 00:45:36,580 --> 00:45:39,260 1028 00:45:39,260 --> 00:45:40,590 Ki sa ou vle fè isit la? 1029 00:45:40,590 --> 00:45:45,244 Genyen yon koup fason posib, men gen nan tou youn oswa plis fason sa ki mal. 1030 00:45:45,244 --> 00:45:46,620 >> ODYANS: Kòmanse ak leftmost. 1031 00:45:46,620 --> 00:45:47,800 >> DAVID Malan: Kòmanse ak leftmost a. 1032 00:45:47,800 --> 00:45:49,008 Ki moun ki nan leftmost a isit la lè sa a? 1033 00:45:49,008 --> 00:45:49,700 ODYANS: Premye. 1034 00:45:49,700 --> 00:45:50,366 >> DAVID Malan: OK. 1035 00:45:50,366 --> 00:45:53,781 Se konsa, kòmanse ak premye ak ki kote ou vle mete ajou men David la ta dwe ye? 1036 00:45:53,781 --> 00:45:54,780 ODYANS: Nan direksyon pou 5 an. 1037 00:45:54,780 --> 00:45:55,446 DAVID Malan: OK. 1038 00:45:55,446 --> 00:45:59,026 Se konsa, David, pwen nan senk oswa Tiffany isit la, ak kounye a? 1039 00:45:59,026 --> 00:46:01,072 >> ODYANS: Tiffany pwen nan 9 a? 1040 00:46:01,072 --> 00:46:04,030 DAVID Malan: Pafè, eksepte Binky a tèt jis kalite tonbe sou, dwa? 1041 00:46:04,030 --> 00:46:06,820 Paske sa ki nan mal ak foto sa a literalman? 1042 00:46:06,820 --> 00:46:08,070 ODYANS: Pa gen anyen ki montre. 1043 00:46:08,070 --> 00:46:09,945 DAVID Malan: Pa gen anyen ki montre nan Jake kounye a. 1044 00:46:09,945 --> 00:46:13,360 Nou te literalman òfelen 9 ak 17, epi nou te gen literalman 1045 00:46:13,360 --> 00:46:18,450 fwit tout bagay sa yo memwa, paske pa à men David la an premye, sa a, se 1046 00:46:18,450 --> 00:46:21,660 amann tèl degre ke li nan kòrèkteman montre nan Tiffany kounye a, 1047 00:46:21,660 --> 00:46:25,410 men si pa gen yon te gen nan Prospective nan pwen an Jake, 1048 00:46:25,410 --> 00:46:27,490 lè sa a nou te pèdi a antye nan ki lis. 1049 00:46:27,490 --> 00:46:28,200 Se konsa nou defèt. 1050 00:46:28,200 --> 00:46:30,950 Se konsa, ki te yon bon bagay yo vwayaj sou men kite a korije kounye a. 1051 00:46:30,950 --> 00:46:33,624 Ki sa nou ta dwe fè premye olye? 1052 00:46:33,624 --> 00:46:34,124 Yeah? 1053 00:46:34,124 --> 00:46:35,791 >> ODYANS: Tiffany ta dwe pwen nan 9 a? 1054 00:46:35,791 --> 00:46:37,582 DAVID Malan: mwen pa kapab jwenn ki tou pre ou. 1055 00:46:37,582 --> 00:46:38,720 Kimoun ki ta dwe pwen nan 9 a? 1056 00:46:38,720 --> 00:46:39,220 >> ODYANS: Tiffany. 1057 00:46:39,220 --> 00:46:39,390 >> DAVID Malan: Tout dwa. 1058 00:46:39,390 --> 00:46:41,200 Se konsa, yo ta dwe premye Tiffany pwen nan 9 lan. 1059 00:46:41,200 --> 00:46:43,550 Se konsa, Tiffany ta dwe pran sou yon valè ki idantik 1060 00:46:43,550 --> 00:46:45,820 jwenn David, ki sanble redondants pou yon moman, 1061 00:46:45,820 --> 00:46:48,820 men sa a amann paske kounye a, ki se dezyèm etap, nou ka mete ajou men David la 1062 00:46:48,820 --> 00:46:52,680 A ak pwen nan Tiffany, ak Lè sa si nou jis kalite pwòp bagay yo 1063 00:46:52,680 --> 00:46:55,740 tankou si sa a se kalite sezon prentan-tankou, kounye a ke nan yon ensèsyon kòrèk. 1064 00:46:55,740 --> 00:46:56,700 Se konsa, ekselan. 1065 00:46:56,700 --> 00:46:57,970 Se konsa, kounye nou ap prèske la. 1066 00:46:57,970 --> 00:47:01,075 Se pou nou youn final Insert valè tankou valè a 20. 1067 00:47:01,075 --> 00:47:03,010 Si nou te ka malok yon volontè final? 1068 00:47:03,010 --> 00:47:04,140 Vini non sou yo. 1069 00:47:04,140 --> 00:47:06,224 Se konsa, yon sèl sa a nan yon ti kras pi plis difisil. 1070 00:47:06,224 --> 00:47:08,390 Men, reyèlman, kòd a nou ap ekri, kwake vèbalman, 1071 00:47:08,390 --> 00:47:10,610 se jis tankou li te gen yon pakèt moun a si kondisyon kounye a, dwa? 1072 00:47:10,610 --> 00:47:12,318 Nou te gen yon kondisyon tcheke si li fè pati 1073 00:47:12,318 --> 00:47:13,840 nan fen a, petèt nan konmansman an. 1074 00:47:13,840 --> 00:47:15,940 Nou bezwen kèk kalite riban jwenn plas la nan mitan yo. 1075 00:47:15,940 --> 00:47:17,400 Se konsa nou fè sa ak sa ki nan non ou? 1076 00:47:17,400 --> 00:47:17,700 >> ERIC: Eric. 1077 00:47:17,700 --> 00:47:18,340 >> DAVID Malan: Eric? 1078 00:47:18,340 --> 00:47:18,660 Eric. 1079 00:47:18,660 --> 00:47:19,368 Nice al kontre ou. 1080 00:47:19,368 --> 00:47:20,490 Se konsa, nou gen 20. 1081 00:47:20,490 --> 00:47:21,220 Mwens pase senk? 1082 00:47:21,220 --> 00:47:21,530 No 1083 00:47:21,530 --> 00:47:22,160 Mwens pase nèf? 1084 00:47:22,160 --> 00:47:22,410 No 1085 00:47:22,410 --> 00:47:23,050 Mwens pase 17? 1086 00:47:23,050 --> 00:47:23,550 No 1087 00:47:23,550 --> 00:47:23,740 OK. 1088 00:47:23,740 --> 00:47:25,701 Li fè pati isit la ak non ou ankò yo ye? 1089 00:47:25,701 --> 00:47:26,200 Sue: Sue. 1090 00:47:26,200 --> 00:47:26,880 DAVID Malan: Sue. 1091 00:47:26,880 --> 00:47:27,379 ALEX: Alex. 1092 00:47:27,379 --> 00:47:28,790 DAVID Malan: Sue, Alex, ak? 1093 00:47:28,790 --> 00:47:29,290 ERIC: Eric. 1094 00:47:29,290 --> 00:47:30,120 DAVID Malan: Eric. 1095 00:47:30,120 --> 00:47:32,140 Ki gen men bezwen debarase mete ajou premye? 1096 00:47:32,140 --> 00:47:32,930 >> ODYANS: Eric. 1097 00:47:32,930 --> 00:47:33,429 OK. 1098 00:47:33,429 --> 00:47:35,200 Se konsa, Eric a ta dwe pwen nan ki kote? 1099 00:47:35,200 --> 00:47:35,930 Nan 22. 1100 00:47:35,930 --> 00:47:36,430 Bon. 1101 00:47:36,430 --> 00:47:38,180 Epi, koulye a sa ki nan pwochen? 1102 00:47:38,180 --> 00:47:40,800 Sue ka Lè sa a pwen nan Eric e kounye a,, si ou nèg jis 1103 00:47:40,800 --> 00:47:44,077 fè kèk chanm, ki se amann vizyèlman, kounye a nou te fè ensèsyon an. 1104 00:47:44,077 --> 00:47:47,160 Se konsa, kite a kounye a konsidere yon kesyon men di ou mèsi anpil pou volontè nou yo. 1105 00:47:47,160 --> 00:47:48,090 Trè byen fè. 1106 00:47:48,090 --> 00:47:50,831 Ou ka kenbe sa yo, si ou renmen. 1107 00:47:50,831 --> 00:47:54,140 Epi nou gen yon kado louvri bèl si ou ta chak renmen pran yon boul estrès. 1108 00:47:54,140 --> 00:47:56,030 Kite m 'jis pase sa a desann. 1109 00:47:56,030 --> 00:47:58,430 Se konsa, ki sa ki Takeaway a nan sa a? 1110 00:47:58,430 --> 00:48:02,430 Sa a sanble ap etonan tèl degre ke nou genyen kounye a 1111 00:48:02,430 --> 00:48:06,360 prezante yon altènativ a yon etalaj ki pa se konsa nan prizon 1112 00:48:06,360 --> 00:48:07,780 nan yon etalaj de kèk gwosè fiks yo. 1113 00:48:07,780 --> 00:48:09,380 Yo ka grandi dynamique. 1114 00:48:09,380 --> 00:48:13,220 >> Men, anpil tankou nou te wè nan semèn sot pase yo, nou pa janm jwenn anyen pou gratis, 1115 00:48:13,220 --> 00:48:15,740 tankou siman gen nan yon komès-off isit la. 1116 00:48:15,740 --> 00:48:18,890 Se konsa, avèk yon tèt nan yon lye lis, se dinamik sa a? 1117 00:48:18,890 --> 00:48:21,590 Kapasite sa a yo grandi ak franchman, nou te ka te fè Delete 1118 00:48:21,590 --> 00:48:23,570 epi nou te kapab retresi jan sa nesesè. 1119 00:48:23,570 --> 00:48:24,710 Ki sa ki pri yo nou peye? 1120 00:48:24,710 --> 00:48:28,510 1121 00:48:28,510 --> 00:48:30,340 De fwa tankou anpil espas, premye a tout moun. 1122 00:48:30,340 --> 00:48:34,010 Si ou gade nan foto a, pa gen okenn ankò yé estoke yon lis nonm antye relatif. 1123 00:48:34,010 --> 00:48:36,740 M 'ap estoke yon lis nonm antye relatif plis endikasyon. 1124 00:48:36,740 --> 00:48:38,240 Se konsa, mwen double kantite lajan an nan espas. 1125 00:48:38,240 --> 00:48:40,740 Koulye a, petèt sa a, se pa tankou yon kontra gwo 4 bytes, 8 bytes, 1126 00:48:40,740 --> 00:48:43,160 men li te kapab sètènman ajoute moute pou aparèy televisyon HD done gwo. 1127 00:48:43,160 --> 00:48:45,570 Ki sa ki nan yon lòt inconvénient? 1128 00:48:45,570 --> 00:48:46,070 Yeah? 1129 00:48:46,070 --> 00:48:48,010 >> ODYANS: Nou dwe Traverse yo youn-pa-youn. 1130 00:48:48,010 --> 00:48:48,760 DAVID Malan: Yeah. 1131 00:48:48,760 --> 00:48:50,260 Nou dwe Traverse yo youn-pa-youn. 1132 00:48:50,260 --> 00:48:53,860 Ou konnen ki sa, nou te bay moute sa a super karakteristik pratik nan bracket kare 1133 00:48:53,860 --> 00:48:57,240 notasyon, plis byen li te ye tankou aksè o aza, 1134 00:48:57,240 --> 00:48:59,280 kote nou ka jis Ale nan yon eleman endividyèl 1135 00:48:59,280 --> 00:49:01,470 Men, koulye a si mwen toujou te gen volontè m 'isit la, 1136 00:49:01,470 --> 00:49:04,660 si mwen te vle jwenn nan Nimewo 22, mwen pa kapab jis 1137 00:49:04,660 --> 00:49:06,620 Ale nan bracket yon bagay yon bagay. 1138 00:49:06,620 --> 00:49:10,530 Mwen gen yo gade sou lis la, anpil tankou egzanp chache nou an linear, 1139 00:49:10,530 --> 00:49:12,260 jwenn nimewo a 22. 1140 00:49:12,260 --> 00:49:14,340 Se konsa, nou sanble yo te peye yon pri a. 1141 00:49:14,340 --> 00:49:16,430 Men, nou kapab Alòske rezoud lòt pwoblèm tou. 1142 00:49:16,430 --> 00:49:18,587 >> An reyalite, kite m 'entwodui jis yon koup la vizyèl. 1143 00:49:18,587 --> 00:49:20,920 Se konsa, si ou ve yo te desann nan Mather nan Gastronomie Hall dènyèman, 1144 00:49:20,920 --> 00:49:23,320 ou pral sonje ke yo pil nan plato tankou sa a, 1145 00:49:23,320 --> 00:49:26,300 nou prete sa yo soti nan Annenberg anvan klas la. 1146 00:49:26,300 --> 00:49:28,930 Se konsa, sa pil nan plato, menm si, se reprezantan aktyèlman 1147 00:49:28,930 --> 00:49:30,860 nan yon estrikti done syans òdinatè. 1148 00:49:30,860 --> 00:49:32,910 Gen yon estrikti done nan syans òdinatè 1149 00:49:32,910 --> 00:49:38,010 li te ye tankou yon pil ki trè joliman prèt tèt li egzakteman sa a vizyèl. 1150 00:49:38,010 --> 00:49:41,380 Se konsa, si chak nan plato sa yo se pa yon plato men tankou yon PO epi mwen te 1151 00:49:41,380 --> 00:49:45,010 nan magazen nimewo, mwen te kapab mete yon sèl desann isit la, 1152 00:49:45,010 --> 00:49:48,320 ak mwen te kapab mete yon lòt desann isit la, yo e yo kontinye anpile nimewo 1153 00:49:48,320 --> 00:49:53,180 sou tèt youn ak lòt, ak sa ki nan potansyèlman itil sou sa a 1154 00:49:53,180 --> 00:49:55,450 se ke sa ki nan enplikasyon la nan sa a estrikti done? 1155 00:49:55,450 --> 00:49:58,045 Ki nonb mwen kapab rale mete deyò premye ki pi bon? 1156 00:49:58,045 --> 00:50:00,640 1157 00:50:00,640 --> 00:50:03,030 Pi resamman yon sèl mete nan sou la. 1158 00:50:03,030 --> 00:50:06,430 >> Se konsa, sa a se sa nou ta rele nan syans òdinatè yon done LIFO estrikti. 1159 00:50:06,430 --> 00:50:08,070 Sot pase a nan, premye deyò. 1160 00:50:08,070 --> 00:50:10,800 Epitou, n ap wè anvan lontan poukisa ke sa ta kapab itil, men pou kounye a, 1161 00:50:10,800 --> 00:50:12,200 jis konsidere pwopriyete a. 1162 00:50:12,200 --> 00:50:15,158 Lè li nan kalite estipid si ou panse sou ki jan sal la kote moun fè li. 1163 00:50:15,158 --> 00:50:17,910 Chak fwa yo plato pwòp ak mete yo menm ki frèch sou tèt, 1164 00:50:17,910 --> 00:50:22,160 ou te kapab gen yon deja pwòp men evantyèlman trè sal ak pousyè 1165 00:50:22,160 --> 00:50:24,360 plato nan pati anba a anpil si ou pa janm aktyèlman 1166 00:50:24,360 --> 00:50:26,820 li ale nan pati anba a nan ki chemine, paske ou jis 1167 00:50:26,820 --> 00:50:29,380 kenbe mete nouvo a ak yo menm ki pwòp sou tèt li. 1168 00:50:29,380 --> 00:50:31,840 Menm bagay la ki ka rive nan yon makèt tou. 1169 00:50:31,840 --> 00:50:35,450 Si ou gen yon ka ekspozisyon nan lèt ak tout CVS tan 1170 00:50:35,450 --> 00:50:37,610 oswa moun ki va vin pi plis lèt, ou jis bouskile le yo 1171 00:50:37,610 --> 00:50:39,880 ou deja genyen nan do a ak ou mete yo menm ki nouvo moute devan, 1172 00:50:39,880 --> 00:50:43,088 w ap ale nan gen kèk bèl anbarasan lèt nan fen a nan estrikti a done, 1173 00:50:43,088 --> 00:50:46,390 paske li nan toujou nan pati anba a oswa équivalant li a toujou nan do a. 1174 00:50:46,390 --> 00:50:50,407 >> Men, gen nan yon lòt fason yo reflechi sou doubli done ak pou egzanp, sa a. 1175 00:50:50,407 --> 00:50:53,490 Si ou se youn nan moun sa yo ki renmen nan liy moute deyò nan magazen Apple 1176 00:50:53,490 --> 00:50:55,610 lè yon nouvo pwodwi vini soti, w ap pwobableman 1177 00:50:55,610 --> 00:50:58,780 pa lè l sèvi avèk yon done chemine estrikti paske ou 1178 00:50:58,780 --> 00:51:03,070 ta ékarté tout lòt moun ki moun ki se doubli yo achte kèk jwèt nouvo. 1179 00:51:03,070 --> 00:51:06,610 Olye de sa, w ap pwobableman lè l sèvi avèk ki kalite estrikti done 1180 00:51:06,610 --> 00:51:10,050 oswa sa ki kalite sistèm nan mond reyèl la? 1181 00:51:10,050 --> 00:51:13,493 Nou swete ke li nan yon liy, oswa plis byen oswa plis Britanik-tankou, yon keu. 1182 00:51:13,493 --> 00:51:17,700 Epi li vire soti yon keu tou yon se done estrikti nan syans òdinatè, 1183 00:51:17,700 --> 00:51:19,700 men yon keu gen yon trè diferan pwopriyete. 1184 00:51:19,700 --> 00:51:20,820 Li pa LIFO. 1185 00:51:20,820 --> 00:51:21,990 Sot pase a nan, premye deyò. 1186 00:51:21,990 --> 00:51:22,800 Bondye padon. 1187 00:51:22,800 --> 00:51:24,280 Li nan olye pou FIFO. 1188 00:51:24,280 --> 00:51:26,110 Premye nan, premye deyò. 1189 00:51:26,110 --> 00:51:27,970 Epi sa a, yon bon bagay pou etidye ekite Règleman poutèt ' 1190 00:51:27,970 --> 00:51:30,428 sètènman lè w ap pawa moute super byen bonè nan maten an. 1191 00:51:30,428 --> 00:51:33,400 Si w ap resevwa gen premye, ou vle jwenn soti premye kòm byen. 1192 00:51:33,400 --> 00:51:35,880 >> Se konsa, tout nan done sa yo estrikti, ke moun kap kriye ak pil 1193 00:51:35,880 --> 00:51:39,220 ak grap nan lòt moun, vire soti ou ka panse a sa a kòm jis yon etalaj. 1194 00:51:39,220 --> 00:51:41,820 Sa a se yon etalaj, petèt yon gwosè fiks 4, men li ta 1195 00:51:41,820 --> 00:51:44,990 gen kalite bèl si nou te ka jis pil plato prèske enfiniman wotè si nou 1196 00:51:44,990 --> 00:51:46,780 gen sa plato anpil oswa nimewo. 1197 00:51:46,780 --> 00:51:48,840 Se konsa, petèt nou vle sèvi ak yon lis lye isit la, 1198 00:51:48,840 --> 00:51:51,800 men komès-off la a pwal potansyèlman ke nou bezwen plis memwa, 1199 00:51:51,800 --> 00:51:55,930 pran yon ti kras plis tan, men nou pa limite wotè nan chemine a, 1200 00:51:55,930 --> 00:51:59,550 anpil tankou ka ekspozisyon Mather la ta ka limite gwosè a nan chemine a, 1201 00:51:59,550 --> 00:52:03,117 e konsa sa yo, se desizyon konsepsyon oswa opsyon ki disponib yo ban nou finalman. 1202 00:52:03,117 --> 00:52:04,950 Se konsa, avèk done sa yo estrikti, nou te te kòmanse 1203 00:52:04,950 --> 00:52:09,360 wè nouvo limit anwo potansyèlman sou sa ki deja te Super vit 1204 00:52:09,360 --> 00:52:11,260 ak ki kote nou pral kite koupe jodi a ak ki kote 1205 00:52:11,260 --> 00:52:13,200 nou pral espere pou li ale nan se nan Mèkredi, nou pral 1206 00:52:13,200 --> 00:52:15,740 kòmanse fè yon gade nan yon done estrikti ki pèmèt nou rechèch 1207 00:52:15,740 --> 00:52:18,260 a done nan tan fen boutèy demi lit ankò. 1208 00:52:18,260 --> 00:52:21,470 Apre sa, nou te wè sa, sonje, nan semèn zewo ak youn ak rechèch binè oswa divize 1209 00:52:21,470 --> 00:52:22,180 ak konkeri. 1210 00:52:22,180 --> 00:52:26,240 Li nan vini tounen ak pi bon toujou, grail a apa pou Bondye pou sa a Mèkredi 1211 00:52:26,240 --> 00:52:29,510 yo pral vini ak nan done estrikti ki kouri se vre wi: 1212 00:52:29,510 --> 00:52:32,070 oswa teyorikman an tan konstan, annakò ak sa 1213 00:52:32,070 --> 00:52:34,760 li pa gen pwoblèm ki jan anpil dè milyon oswa dè milya de bagay sa yo 1214 00:52:34,760 --> 00:52:38,470 nou gen nan estrikti a done, li pral pran nou tan konstan, petèt yon sèl etap 1215 00:52:38,470 --> 00:52:41,387 oswa de etap oswa 10 etap, men nimewo konstan nan etap 1216 00:52:41,387 --> 00:52:42,970 nan rechèch nan ke estrikti done. 1217 00:52:42,970 --> 00:52:46,300 Sa tout bon yo pral grail a apa pou Bondye men plis sou sa nan Mèkredi. 1218 00:52:46,300 --> 00:52:49,045 Wè ya lè sa a. 1219 00:52:49,045 --> 00:52:53,704 >> [MIZIK jwe] 1220 00:52:53,704 --> 00:56:08,448