1 00:00:00,000 --> 00:00:09,572 2 00:00:09,572 --> 00:00:12,030 Rob BOWDEN: Hæ, ég er Rob Bowden, og við skulum tala um quiz0. 3 00:00:12,030 --> 00:00:13,280 4 00:00:13,280 --> 00:00:14,545 >> Svo, fyrst spurning. 5 00:00:14,545 --> 00:00:17,750 Þetta er spurning sem þú þarf að kóða númer 6 00:00:17,750 --> 00:00:21,270 127 í tvöfaldur ljósaperur. 7 00:00:21,270 --> 00:00:23,550 Ef þú vildir, þú gætir gera reglulega breytingu 8 00:00:23,550 --> 00:00:25,950 frá bi-- eða frá aukastaf til tvöfaldur. 9 00:00:25,950 --> 00:00:28,300 En það er líklega að fara að taka mikinn tíma. 10 00:00:28,300 --> 00:00:31,750 Ég meina, þú gætir fundið út að OK, 1 er þar, 2 er í þar, 11 00:00:31,750 --> 00:00:33,650 4 er í þar, 8 er þar. 12 00:00:33,650 --> 00:00:39,280 Auðveldari leið, 127 er 128 mínus einn. 13 00:00:39,280 --> 00:00:42,013 Það lengst til vinstri ljósapera er 128-bita. 14 00:00:42,013 --> 00:00:43,490 15 00:00:43,490 --> 00:00:47,860 Svo er 127 í raun bara allt hinna ljósaperur, 16 00:00:47,860 --> 00:00:51,420 þar sem það er lengst til vinstri ljósapera minus 1. 17 00:00:51,420 --> 00:00:52,800 Það er það fyrir þeirri spurningu. 18 00:00:52,800 --> 00:00:54,060 >> Spurning eitt. 19 00:00:54,060 --> 00:00:56,710 Svo með 3 bitum þú getur tákna 8 mismunandi gildi. 20 00:00:56,710 --> 00:01:01,000 Hvers vegna, þá er 7 stærsta utan neikvæð, aukastaf heiltala þú getur táknað? 21 00:01:01,000 --> 00:01:04,050 Jæja, ef við getum aðeins tákna 8 mismunandi gildi, 22 00:01:04,050 --> 00:01:07,430 þá hvað við erum að fara að vera fulltrúi er 0 til og með 7. 23 00:01:07,430 --> 00:01:08,745 0 tekur upp einn af þeim gildum. 24 00:01:08,745 --> 00:01:09,980 25 00:01:09,980 --> 00:01:11,190 >> Spurning tvö. 26 00:01:11,190 --> 00:01:14,610 Með n bits, hversu margir greinilegur gildi er hægt að tákna? 27 00:01:14,610 --> 00:01:19,080 Svo, með n bits, hefur þú 2 Möguleg gildi fyrir hverja hluti. 28 00:01:19,080 --> 00:01:22,300 Þannig að við höfum 2 möguleg gildi fyrir fyrsta bita, 2 möguleg gildi 29 00:01:22,300 --> 00:01:24,450 fyrir þá síðari, 2 mögulegt fyrir þriðjung. 30 00:01:24,450 --> 00:01:28,730 Og svo er það 2 sinnum 2 sinnum 2, og lokum svarið er 2 í n. 31 00:01:28,730 --> 00:01:30,010 32 00:01:30,010 --> 00:01:31,100 >> Spurning þrjú. 33 00:01:31,100 --> 00:01:33,450 Hvað er 0x50 í tvöfaldur? 34 00:01:33,450 --> 00:01:39,490 Svo muna að sextánskur hefur mjög einfalt vending í tvöfaldur. 35 00:01:39,490 --> 00:01:43,180 Svo hér, þurfum við bara að horfa á 5 og 0 sjálfstætt. 36 00:01:43,180 --> 00:01:45,110 Svo er það 5 í tvöfaldur? 37 00:01:45,110 --> 00:01:48,400 0101, það er 1 bita og 4 bita. 38 00:01:48,400 --> 00:01:49,900 Hvað er 0 í tvöfaldur? 39 00:01:49,900 --> 00:01:50,520 Ekki erfiður. 40 00:01:50,520 --> 00:01:52,180 0000. 41 00:01:52,180 --> 00:01:54,970 Svo bara setja þá saman, og það er fullt númer í tvöfaldur. 42 00:01:54,970 --> 00:01:57,640 01.010.000. 43 00:01:57,640 --> 00:02:00,439 Og ef þú vildir að þú gætir taka burt sem lengst til vinstri núll. 44 00:02:00,439 --> 00:02:01,105 Það er óviðkomandi. 45 00:02:01,105 --> 00:02:02,920 46 00:02:02,920 --> 00:02:05,733 >> Svo þá að öðrum kosti, hvað er 0x50 í aukastaf? 47 00:02:05,733 --> 00:02:08,649 Ef þú vildir, could-- þú ef þú ert öruggari með tvöfaldur, 48 00:02:08,649 --> 00:02:11,340 þú gætir tekið að tvöfaldur svar og umbreyta það inn í aukastaf. 49 00:02:11,340 --> 00:02:13,870 Eða við gætum bara muna sem sextánskur. 50 00:02:13,870 --> 00:02:21,140 Svo að 0 er í 0-sæti, og 5 er í 16 til að byrja með. 51 00:02:21,140 --> 00:02:25,990 Svo hér höfum við 5 sinnum 16 við fyrst, plús 0 sinnum 16 til núll, 52 00:02:25,990 --> 00:02:27,520 er 80. 53 00:02:27,520 --> 00:02:29,710 Og ef þú horfði á fyrirsagnar spurningunni, 54 00:02:29,710 --> 00:02:32,920 það var CS 80, sem var eins konar vísbendingu við svar við þessu vandamáli. 55 00:02:32,920 --> 00:02:34,460 56 00:02:34,460 --> 00:02:35,420 >> Spurning fimm. 57 00:02:35,420 --> 00:02:40,320 Við höfum þessa Scratch handrit, sem er endurtaka 4 sinnum hnetusmjör hlaup. 58 00:02:40,320 --> 00:02:42,800 Svo hvernig eigum við nú kóða sem í C? 59 00:02:42,800 --> 00:02:47,730 Jæja, höfum við here-- hluti feitletruð er aðeins hluti sem þú þurfti að framkvæma. 60 00:02:47,730 --> 00:02:51,950 Þannig að við höfum 4 lykkja sem er lykkja 4 sinnum, printf-ing hnetusmjör hlaup, 61 00:02:51,950 --> 00:02:53,910 með nýja línu sem vandamálið biður. 62 00:02:53,910 --> 00:02:55,250 63 00:02:55,250 --> 00:02:57,490 >> Spurning sex, annað Scratch vandamál. 64 00:02:57,490 --> 00:03:00,210 Sjáum við að við erum í eilífu lykkju. 65 00:03:00,210 --> 00:03:05,000 Við erum að segja breytilega I og þá hækka i um 1. 66 00:03:05,000 --> 00:03:09,580 Nú viljum við gera það í C. Það eru margar leiðir sem við hefðum getað gert þetta. 67 00:03:09,580 --> 00:03:12,840 Hér við gerðist að kóða eilífu lykkja sem meðan (satt). 68 00:03:12,840 --> 00:03:16,600 Þannig að við að lýsa Breytan i, bara eins og við höfðum breytilegum ég í grunni. 69 00:03:16,600 --> 00:03:21,950 Lýsa breytilega I, og að eilífu meðan (satt), segjum við breytu i. 70 00:03:21,950 --> 00:03:25,260 Svo printf% i-- eða þú hefði getað notað% d. 71 00:03:25,260 --> 00:03:27,985 Við segjum þá breytu og þá hækka það, ég ++. 72 00:03:27,985 --> 00:03:29,560 73 00:03:29,560 --> 00:03:30,830 >> Spurning sjö. 74 00:03:30,830 --> 00:03:35,560 Nú viljum við að gera eitthvað mjög svipað Mario punktur c frá Heimadæmi einn. 75 00:03:35,560 --> 00:03:39,110 Við viljum að prenta þessar hashtags, við viljum að prenta fimm 76 00:03:39,110 --> 00:03:40,700 með þremur rétthyrningur þessara kjötkássa. 77 00:03:40,700 --> 00:03:41,770 78 00:03:41,770 --> 00:03:43,162 Svo hvernig eigum við að fara að gera það? 79 00:03:43,162 --> 00:03:45,370 Jæja, gefum þér allt fullt af kóða, og þú bara 80 00:03:45,370 --> 00:03:47,560 að fylla í prenta rist virka. 81 00:03:47,560 --> 00:03:49,540 >> Svo hvaða hjartarskinn PrintGrid líta út? 82 00:03:49,540 --> 00:03:51,480 Jæja þú ert framhjá breidd og hæð. 83 00:03:51,480 --> 00:03:53,520 Þannig að við höfum ytra 4 lykkja, sem er lykkja 84 00:03:53,520 --> 00:03:57,650 yfir allar raðir af þessari rist að við viljum að prenta út. 85 00:03:57,650 --> 00:04:01,250 Þá höfum við meðal-hreiður 4 lykkja, það er prentun yfir hvern dálk. 86 00:04:01,250 --> 00:04:06,210 Svo fyrir hverja röð, prenta við fyrir hver dálkur, einn kjötkássa. 87 00:04:06,210 --> 00:04:10,045 Þá í enda línunnar við prenta a einn nýr lína að fara í næstu línu. 88 00:04:10,045 --> 00:04:11,420 Og það er það fyrir alla rist. 89 00:04:11,420 --> 00:04:12,810 90 00:04:12,810 --> 00:04:13,675 >> Spurning átta. 91 00:04:13,675 --> 00:04:17,170 Fall eins PrintGrid er sagður hafa aukaverkun, en ekki aftur 92 00:04:17,170 --> 00:04:17,670 gildi. 93 00:04:17,670 --> 00:04:19,209 Útskýrðu greinarmun. 94 00:04:19,209 --> 00:04:23,080 Svo treystir þetta á þér að muna hvað aukaverkun er. 95 00:04:23,080 --> 00:04:25,180 Jæja, aftur value-- við vitum PrintGrid ekki 96 00:04:25,180 --> 00:04:28,180 hafa skilagildi, þar hérna segir það ógilt. 97 00:04:28,180 --> 00:04:31,150 Svo nokkuð sem skilar ógilt ekki raunverulega að fara aftur eitthvað. 98 00:04:31,150 --> 00:04:32,200 99 00:04:32,200 --> 00:04:33,620 Svo er það sem aukaverkun? 100 00:04:33,620 --> 00:04:36,620 Jæja, aukaverkun er eitthvað sem konar viðvarandi 101 00:04:36,620 --> 00:04:39,500 eftir fallinu endum það var ekki bara aftur, 102 00:04:39,500 --> 00:04:41,340 og það var ekki bara af aðföngum. 103 00:04:41,340 --> 00:04:44,970 >> Svo, til dæmis, gæti það komið fyrir breyta alþjóðlegt breytu. 104 00:04:44,970 --> 00:04:46,590 Það væri aukaverkun. 105 00:04:46,590 --> 00:04:49,000 Í þessu tiltekna tilviki, a mjög mikilvæga aukaverkunin 106 00:04:49,000 --> 00:04:51,070 er prentun á skjáinn. 107 00:04:51,070 --> 00:04:53,110 Svo er að aukaverkun sem PrintGrid hefur. 108 00:04:53,110 --> 00:04:54,980 Við prenta þetta á skjáinn. 109 00:04:54,980 --> 00:04:56,370 Og hægt er að hugsa um að sem aukaverkun, 110 00:04:56,370 --> 00:04:58,690 þar sem það er eitthvað sem helst eftir þessi aðgerð lýkur. 111 00:04:58,690 --> 00:05:01,481 Það er eitthvað utan gildissviðs af þessari aðgerð sem á endanum 112 00:05:01,481 --> 00:05:03,380 er breytt, innihald á skjánum. 113 00:05:03,380 --> 00:05:05,200 114 00:05:05,200 --> 00:05:05,839 >> Spurning níu. 115 00:05:05,839 --> 00:05:07,880 Íhuga forritið hér, sem línunúmer 116 00:05:07,880 --> 00:05:09,740 hefur verið bætt fyrir sakir umræðu. 117 00:05:09,740 --> 00:05:13,480 Þannig að í þessu forriti við erum bara starf GetString, geyma það 118 00:05:13,480 --> 00:05:16,220 í þessa breytu s, og þá prentun þá breytu s. 119 00:05:16,220 --> 00:05:16,720 OK. 120 00:05:16,720 --> 00:05:19,090 Svo útskýra hvers vegna lína einn er til staðar. 121 00:05:19,090 --> 00:05:20,920 #include cs50 punktur H. 122 00:05:20,920 --> 00:05:23,820 Hvers vegna þurfum við að #include cs50 punktur h? 123 00:05:23,820 --> 00:05:26,180 Jæja við erum að hringja í GetString virka, 124 00:05:26,180 --> 00:05:28,840 og GetString er skilgreind í cs50 bókasafn. 125 00:05:28,840 --> 00:05:31,600 Þannig að ef við höfðum ekki #include cs50 punktur h 126 00:05:31,600 --> 00:05:35,760 við myndum fá þessi óbeina yfirlýsingu af GetString virka villa 127 00:05:35,760 --> 00:05:36,840 frá þýðanda. 128 00:05:36,840 --> 00:05:40,110 Þannig að við þurfum að fela library-- við þurfum að láta haus skrá, 129 00:05:40,110 --> 00:05:42,870 eða annars þýðanda mun ekki viðurkenna að GetString staðar. 130 00:05:42,870 --> 00:05:44,380 131 00:05:44,380 --> 00:05:46,140 >> Útskýrið hvers vegna lína tvö er til staðar. 132 00:05:46,140 --> 00:05:47,890 Svo staðlaða IO punktur H. 133 00:05:47,890 --> 00:05:50,430 Það er nákvæmlega það sama og fyrri vandamál, 134 00:05:50,430 --> 00:05:53,310 nema í stað þess að takast á við GetString, við erum að tala um printf. 135 00:05:53,310 --> 00:05:56,654 Þannig að ef við vildum ekki segja að við þurfum að fela staðlaða IO punktur h, 136 00:05:56,654 --> 00:05:58,820 þá myndum við ekki vera fær að nota printf virka, 137 00:05:58,820 --> 00:06:00,653 vegna þýðanda myndi ekki vita um það. 138 00:06:00,653 --> 00:06:01,750 139 00:06:01,750 --> 00:06:05,260 >> Why-- Hvaða þýðingu ginnunga í línu fjórum? 140 00:06:05,260 --> 00:06:08,010 Svo hér höfum við int helstu (tóm). 141 00:06:08,010 --> 00:06:10,600 Það er bara að segja að við ert ekki að fá neina stjórn lína 142 00:06:10,600 --> 00:06:12,280 rök til helstu. 143 00:06:12,280 --> 00:06:17,390 Mundu að við gætum sagt int Helstu INT argc string argv sviga. 144 00:06:17,390 --> 00:06:20,400 Svo hér við segjum bara ógilt að segja að við ert hunsa stjórn lína rifrildi. 145 00:06:20,400 --> 00:06:21,840 146 00:06:21,840 --> 00:06:25,225 >> Útskýra, með tilliti til minni, nákvæmlega hvaða GetString í línu sex skilar. 147 00:06:25,225 --> 00:06:27,040 148 00:06:27,040 --> 00:06:31,640 GetString er aftur blokk af minni, fylki af stöfum. 149 00:06:31,640 --> 00:06:34,870 Það er í raun að skila bendi á fyrsta staf. 150 00:06:34,870 --> 00:06:37,170 Mundu að band er char stjarna. 151 00:06:37,170 --> 00:06:41,360 Svo er s a bendi á fyrsta persóna í hvaða strengur er 152 00:06:41,360 --> 00:06:43,510 að notandinn slegið á lyklaborðinu. 153 00:06:43,510 --> 00:06:47,070 Og að minni gerist að malloced, þannig að minni er í hrúga. 154 00:06:47,070 --> 00:06:49,080 155 00:06:49,080 --> 00:06:50,450 >> Spurning 13. 156 00:06:50,450 --> 00:06:51,960 Íhuga forritið hér fyrir neðan. 157 00:06:51,960 --> 00:06:55,579 Svo allt þetta forrit er að gera er printf-ing 1 deilt með 10. 158 00:06:55,579 --> 00:06:57,370 Svo þegar hún er þýdd og framkvæmd, þetta forrit 159 00:06:57,370 --> 00:07:01,170 framleiðsla 0.0, jafnvel þótt 1 deilt með 10 er 0.1. 160 00:07:01,170 --> 00:07:02,970 Svo er það 0,0 af hverju? 161 00:07:02,970 --> 00:07:05,510 Jæja, þetta er vegna þess að af heiltölu deilingu. 162 00:07:05,510 --> 00:07:08,580 Svo 1 er heil tala, 10 er heil tala. 163 00:07:08,580 --> 00:07:11,980 Svo 1 deilt með 10, allt er meðhöndluð sem heiltölur 164 00:07:11,980 --> 00:07:16,380 og í C, þegar við gerum heiltala deild, við HÃ allir kommu. 165 00:07:16,380 --> 00:07:19,590 Svo 1 deilt með 10 er 0, og þá erum við að reyna 166 00:07:19,590 --> 00:07:24,410 að prenta það sem flotholt, svo núll prentuð sem flotholt er 0,0. 167 00:07:24,410 --> 00:07:27,400 Og það er hvers vegna við fáum 0.0. 168 00:07:27,400 --> 00:07:28,940 >> Íhuga forritið hér fyrir neðan. 169 00:07:28,940 --> 00:07:31,280 Nú erum við að prenta 0.1. 170 00:07:31,280 --> 00:07:34,280 Svo neitun heiltala deild, við erum bara að prentun 0,1, 171 00:07:34,280 --> 00:07:37,100 en við erum að prenta það að 28 aukastöfum. 172 00:07:37,100 --> 00:07:41,810 Og við fáum þetta 0,1000, a heild búnt af núllum, 5 5 5, bla bla bla. 173 00:07:41,810 --> 00:07:45,495 Svo er spurningin hér hvers vegna er það prenta það, í stað þess að nákvæmlega 0.1? 174 00:07:45,495 --> 00:07:46,620 175 00:07:46,620 --> 00:07:49,640 >> Svo ástæðan hér er nú fleytitölu imprecision. 176 00:07:49,640 --> 00:07:53,410 Mundu að fljóta er aðeins 32 bits. 177 00:07:53,410 --> 00:07:57,540 Svo við getum aðeins tákna endanlega fjölda fljótandi punkta gildi með þeim 32 178 00:07:57,540 --> 00:07:58,560 bitar. 179 00:07:58,560 --> 00:08:01,760 Jæja það er að lokum óendanlega margir fleytitölu gildi, 180 00:08:01,760 --> 00:08:04,940 og það er óendanlega margir fljótandi lið gildi á milli 0 og 1, 181 00:08:04,940 --> 00:08:07,860 og við erum augljóslega geta tákna jafnvel fleiri gildum en það. 182 00:08:07,860 --> 00:08:13,230 Þannig að við verðum að gera fórnir til að vera fær um að fyrir flest gildi. 183 00:08:13,230 --> 00:08:16,960 >> Svo gildi eins 0.1, virðist við getum ekki tákna það nákvæmlega. 184 00:08:16,960 --> 00:08:22,500 Svo í stað þess hönd 0,1 við gerum besta sem við getum tákna þetta 0.100000 5 5 185 00:08:22,500 --> 00:08:23,260 5. 186 00:08:23,260 --> 00:08:26,306 Og það er ansi nálægt, en fyrir fullt af forritum 187 00:08:26,306 --> 00:08:28,430 þú þarft að hafa áhyggjur óður í fleytitölu imprecision, 188 00:08:28,430 --> 00:08:30,930 vegna þess að við bara getum ekki tákna allt fljótandi stig nákvæmlega. 189 00:08:30,930 --> 00:08:32,500 190 00:08:32,500 --> 00:08:33,380 >> Spurning 15. 191 00:08:33,380 --> 00:08:34,679 Íhuga kóðann fyrir neðan. 192 00:08:34,679 --> 00:08:36,630 Við erum bara 1 plús 1 prentun. 193 00:08:36,630 --> 00:08:38,289 Svo er engin bragð hér. 194 00:08:38,289 --> 00:08:41,780 1 plús 1 metur til 2, og þá erum við að prenta það. 195 00:08:41,780 --> 00:08:42,789 Þetta prentar bara 2. 196 00:08:42,789 --> 00:08:43,850 197 00:08:43,850 --> 00:08:44,700 >> Spurning 16. 198 00:08:44,700 --> 00:08:49,450 Nú erum við að prenta staf 1 plús eðli 1. 199 00:08:49,450 --> 00:08:52,110 Svo hvers vegna er þetta ekki prenta það sama? 200 00:08:52,110 --> 00:08:57,680 Jæja eðli 1 ​​plús eðli 1, eðli 1 ​​hefur ASCII gildi 49. 201 00:08:57,680 --> 00:09:04,840 Þannig að þetta er í raun að segja 49 plús 49, og endanum þetta er að fara að prenta 98. 202 00:09:04,840 --> 00:09:06,130 Þannig að þetta er ekki prenta 2. 203 00:09:06,130 --> 00:09:08,070 204 00:09:08,070 --> 00:09:09,271 >> Spurning 17. 205 00:09:09,271 --> 00:09:11,520 Ljúka framkvæmd af stakur neðan á þann hátt 206 00:09:11,520 --> 00:09:14,615 að fallið skilar true ef n er skrýtið og rangt ef n er jafnvel. 207 00:09:14,615 --> 00:09:16,710 208 00:09:16,710 --> 00:09:19,330 This er a mikill tilgangur fyrir unga fólkið rekstraraðila. 209 00:09:19,330 --> 00:09:24,530 Svo við tökum rök n okkar, ef n unga fólkið 2 jafnt og 1, vel 210 00:09:24,530 --> 00:09:28,030 sem þýðir að n skipt með 2 hafði afganginn. 211 00:09:28,030 --> 00:09:33,270 Ef n er deilt með 2 hafði afganginn, að þýðir að n er oddatala, svo við aftur satt. 212 00:09:33,270 --> 00:09:34,910 Annað sem við return false. 213 00:09:34,910 --> 00:09:39,070 Þú einnig getað gert n unga fólkið 2 jafn núll, return false, annars aftur satt. 214 00:09:39,070 --> 00:09:41,600 215 00:09:41,600 --> 00:09:43,640 >> Íhuga endurkvæma virka neðan. 216 00:09:43,640 --> 00:09:46,920 Þannig að ef n er minna en eða jafnt og 1, skila 1, 217 00:09:46,920 --> 00:09:50,430 annars aftur n sinnum f n mínus 1. 218 00:09:50,430 --> 00:09:52,556 Svo er það þetta? 219 00:09:52,556 --> 00:09:54,305 Jæja, þetta er bara factorial virka. 220 00:09:54,305 --> 00:09:55,410 221 00:09:55,410 --> 00:09:57,405 Þetta er fallega fulltrúa við n Factorial. 222 00:09:57,405 --> 00:09:58,720 223 00:09:58,720 --> 00:10:02,310 >> Svo spurning 19 nú, við viljum taka þetta endurkvæma virka. 224 00:10:02,310 --> 00:10:04,530 Við viljum til að gera það endurtekningu. 225 00:10:04,530 --> 00:10:05,874 Svo hvernig gerum við það? 226 00:10:05,874 --> 00:10:07,790 Vel fyrir starfsfólk lausn, og aftur er það 227 00:10:07,790 --> 00:10:11,090 margar leiðir sem þú gætir hafa gert að byrja við með þessari int vöru 228 00:10:11,090 --> 00:10:11,812 jafnt og 1. 229 00:10:11,812 --> 00:10:13,520 Og allan þennan for lykkju, við erum að fara 230 00:10:13,520 --> 00:10:17,590 að margfalda vöru að lokum endað með fullt Factorial. 231 00:10:17,590 --> 00:10:21,870 Svo fyrir int i jafngildir 2, i er minna en eða jafnt n, ég ++. 232 00:10:21,870 --> 00:10:24,130 >> Þú gætir verið að spá í hvers vegna ég jafngildir 2. 233 00:10:24,130 --> 00:10:28,380 Jæja, muna að hér verðum við að ganga úr skugga um grunn tilfelli okkar er rétt. 234 00:10:28,380 --> 00:10:32,180 Þannig að ef n er minna en eða jafnt og til 1, erum við bara að koma aftur 1. 235 00:10:32,180 --> 00:10:34,830 Svo hérna, byrjum við á ég jafngildir 2. 236 00:10:34,830 --> 00:10:39,090 Vel ef ég væri 1, þá the-- eða ef n voru 1, þá gildir um for lykkju 237 00:10:39,090 --> 00:10:40,600 myndi ekki framkvæma yfirleitt. 238 00:10:40,600 --> 00:10:43,190 Og svo myndum við bara vara aftur, sem er 1. 239 00:10:43,190 --> 00:10:45,920 Á sama hátt, ef n voru Nokkuð minna en 1-- 240 00:10:45,920 --> 00:10:49,290 ef það væri 0, neikvæð 1, whatever-- við myndum samt vera aftur 1, 241 00:10:49,290 --> 00:10:52,260 sem er einmitt það sem endurkvæma útgáfa er að gera. 242 00:10:52,260 --> 00:10:54,660 >> Nú, ef n er meiri en 1, þá erum við að fara 243 00:10:54,660 --> 00:10:56,550 til að gera að minnsta kosti einn endurtekning þessa lykkju. 244 00:10:56,550 --> 00:11:00,630 Svo skulum segja að n er 5, þá erum við fara að gera vöru sinnum jafngildir 2. 245 00:11:00,630 --> 00:11:02,165 Svo nú vara er 2. 246 00:11:02,165 --> 00:11:04,040 Nú erum við að fara að gera vara sinnum er 3. 247 00:11:04,040 --> 00:11:04,690 Nú er það 6. 248 00:11:04,690 --> 00:11:07,500 Vara sinnum jafngildir 4, nú er það 24. 249 00:11:07,500 --> 00:11:10,420 Vara sinnum jafngildir 5, nú er það 120. 250 00:11:10,420 --> 00:11:16,730 Svo þá á endanum, við erum aftur 120, sem er rétt 5 þátta. 251 00:11:16,730 --> 00:11:17,510 >> Spurning 20. 252 00:11:17,510 --> 00:11:22,480 Þetta er einn þar sem þú þarft að fylla í þessari töflu með hverjum reiknirit, 253 00:11:22,480 --> 00:11:25,735 eitthvað sem við höfum séð, að passar þessi lausnarleiðar hlaupa 254 00:11:25,735 --> 00:11:28,060 sinnum þessir asymptotic hlaupa sinnum. 255 00:11:28,060 --> 00:11:33,270 Svo er það sem reiknirit sem er omega af 1, en stór O á n? 256 00:11:33,270 --> 00:11:35,970 Þannig að það gæti verið óendanlega mörg svör hér. 257 00:11:35,970 --> 00:11:39,790 Sá sem við höfum séð sennilega oft er bara línuleg leit. 258 00:11:39,790 --> 00:11:42,050 >> Svo í besta tilfelli atburðarás, sem okkur erum 259 00:11:42,050 --> 00:11:44,050 að leita að er að minnsta upphaf listanum 260 00:11:44,050 --> 00:11:47,400 og svo í omega af 1 skrefum, The fyrstur hlutur sem við athuga, 261 00:11:47,400 --> 00:11:49,740 við bara strax aftur sem við fundum hlutinn. 262 00:11:49,740 --> 00:11:52,189 Í versta falli, hluturinn er á enda, 263 00:11:52,189 --> 00:11:53,730 eða hluturinn er ekki á listanum á öllum. 264 00:11:53,730 --> 00:11:56,700 Þannig að við verðum að leita allt lista, allir n 265 00:11:56,700 --> 00:11:58,480 frumefni, og það er hvers vegna það er o n. 266 00:11:58,480 --> 00:11:59,670 267 00:11:59,670 --> 00:12:04,880 >> Svo nú er það eitthvað sem er bæði Omega á n log n, og stór O í n log n. 268 00:12:04,880 --> 00:12:08,650 Jæja mest viðeigandi hlutur við höfum séð hér er Mergesort. 269 00:12:08,650 --> 00:12:12,950 Svo Mergesort, muna, er endanlega þeta 270 00:12:12,950 --> 00:12:16,920 af n log n, þar sem þeta er skilgreind ef bæði ómega og stór O eru þau sömu. 271 00:12:16,920 --> 00:12:17,580 Bæði n log n. 272 00:12:17,580 --> 00:12:18,690 273 00:12:18,690 --> 00:12:21,970 >> Hvað er eitthvað sem er ómega af n, og O á n í öðru veldi? 274 00:12:21,970 --> 00:12:23,990 Jæja, aftur er það margar mögulegar svör. 275 00:12:23,990 --> 00:12:26,440 Hér við gerast að segja kúla tagi. 276 00:12:26,440 --> 00:12:28,840 Innsetningu myndu einnig vinna hér. 277 00:12:28,840 --> 00:12:31,400 Mundu blöðrunnar raða hefur að hagræðingar þar, 278 00:12:31,400 --> 00:12:34,630 ef þú ert fær um að fá í gegnum allt listann 279 00:12:34,630 --> 00:12:37,402 án þess að þurfa að gera Allar skiptasamninga, þá vel, 280 00:12:37,402 --> 00:12:40,110 við getum strax aftur að Listinn var raðað til að byrja með. 281 00:12:40,110 --> 00:12:43,185 Svo í besta falli, það er bara Omega á n. 282 00:12:43,185 --> 00:12:45,960 Ef það er ekki bara fallega raðað lista til að byrja með, 283 00:12:45,960 --> 00:12:48,270 þá höfum O n veldi skiptasamninga. 284 00:12:48,270 --> 00:12:49,330 285 00:12:49,330 --> 00:12:55,610 Og að lokum, höfum við val konar fyrir n veldi, bæði ómega og stór O. 286 00:12:55,610 --> 00:12:56,850 >> Spurning 21. 287 00:12:56,850 --> 00:12:58,870 Hvað er heiltala flæða? 288 00:12:58,870 --> 00:13:02,160 Jæja aftur, svipað fyrr, við höfum aðeins endanlegum marga bita 289 00:13:02,160 --> 00:13:04,255 til að tákna heiltala, svo kannski 32 bits. 290 00:13:04,255 --> 00:13:06,300 291 00:13:06,300 --> 00:13:09,180 Segjum að við höfum undirritað heiltala. 292 00:13:09,180 --> 00:13:12,800 Þá lokum hæsta jákvæð tala við getur táknað 293 00:13:12,800 --> 00:13:15,910 er 2 til að 31 mínus 1. 294 00:13:15,910 --> 00:13:19,370 Svo gerist það ef við reynum að þá hækka þessi heiltala? 295 00:13:19,370 --> 00:13:25,320 Jæja, við erum að fara að fara frá 2 til 31 mínus 1, alla leið niður til neikvæða 2 296 00:13:25,320 --> 00:13:26,490 til 31. 297 00:13:26,490 --> 00:13:29,470 Svo er þetta heiltala flæða þegar þú heldur hækka, 298 00:13:29,470 --> 00:13:32,330 og á endanum þú getur ekki fá allir hærri og það bara 299 00:13:32,330 --> 00:13:34,520 hula alla leið aftur kring til neikvætt gildi. 300 00:13:34,520 --> 00:13:35,850 301 00:13:35,850 --> 00:13:37,779 >> Hvað um biðminni flæða? 302 00:13:37,779 --> 00:13:39,820 Svo biðminni overflow-- muna hvað biðminni er. 303 00:13:39,820 --> 00:13:41,000 Það er bara klumpur af minni. 304 00:13:41,000 --> 00:13:43,350 Eitthvað eins og array er biðminni. 305 00:13:43,350 --> 00:13:46,120 Svo er a biðminni flæða þegar þú reynir að komast minni 306 00:13:46,120 --> 00:13:47,880 handan lok þess fylkisins. 307 00:13:47,880 --> 00:13:50,410 Svo ef þú ert með array af stærð 5 og þér 308 00:13:50,410 --> 00:13:53,700 reyna að komast array krappi 5 eða hvar festingin 6 eða Bríkin 7, 309 00:13:53,700 --> 00:13:56,610 eða eitthvað út fyrir endir, eða jafnvel eitthvað 310 00:13:56,610 --> 00:14:00,790 below-- array krappi neikvæð 1-- Allir sem eru biðminni yfirfullt. 311 00:14:00,790 --> 00:14:02,810 Þú ert að snerta minni í slæmum hætti. 312 00:14:02,810 --> 00:14:04,090 313 00:14:04,090 --> 00:14:04,730 >> Spurning 23. 314 00:14:04,730 --> 00:14:05,760 315 00:14:05,760 --> 00:14:09,100 Þannig að í þessu sem þú þarft að innleiða strlen. 316 00:14:09,100 --> 00:14:11,630 Og við segjum þér að þú getur ráð s verður ekki null, 317 00:14:11,630 --> 00:14:13,790 svo þú þarft ekki að gera allir stöðva for null. 318 00:14:13,790 --> 00:14:16,190 Og það eru margar leiðir þú gætir hafa gert þetta. 319 00:14:16,190 --> 00:14:18,440 Hér við taka bara einföld. 320 00:14:18,440 --> 00:14:21,780 Við byrjum með teljara, n. n er telja hversu margir stafir eru. 321 00:14:21,780 --> 00:14:25,560 Svo við byrjum á 0, og þá erum við kunnugt yfir alla lista. 322 00:14:25,560 --> 00:14:29,092 >> Er s Bríkin 0 eða jafn hinum null Terminator eðli? 323 00:14:29,092 --> 00:14:31,425 Mundu að við erum að leita að núll Terminator eðli 324 00:14:31,425 --> 00:14:33,360 að ákveða hversu langur strengur okkar er. 325 00:14:33,360 --> 00:14:35,890 Það er að fara að segja allir viðeigandi band. 326 00:14:35,890 --> 00:14:39,400 Svo er s krappi 0 jafnir til núll Terminator? 327 00:14:39,400 --> 00:14:42,850 Ef það er ekki, þá erum við að fara að líta á s krappi 1, s krappi 2. 328 00:14:42,850 --> 00:14:45,050 Við höldum áfram þar vér finna núll Ljúka. 329 00:14:45,050 --> 00:14:48,580 Þegar við höfum fundið það, þá n inniheldur Heildarlengd á band, 330 00:14:48,580 --> 00:14:49,942 og við getum bara aftur það. 331 00:14:49,942 --> 00:14:51,180 332 00:14:51,180 --> 00:14:51,865 >> Spurning 24. 333 00:14:51,865 --> 00:14:53,010 334 00:14:53,010 --> 00:14:56,050 Þannig að þetta er eitt þar sem þú verða að gera viðskipti burt. 335 00:14:56,050 --> 00:14:59,810 Svo er eitt gott í einu leið, en á hvaða hátt er það slæmt? 336 00:14:59,810 --> 00:15:02,980 Svo hér, Mergesort tilhneigingu til vera hraðari en kúla tagi. 337 00:15:02,980 --> 00:15:06,530 Having that-- vel, það eru margar svör hér. 338 00:15:06,530 --> 00:15:12,930 En helsta einn er að kúla raða er omega n fyrir flokkaðs lista. 339 00:15:12,930 --> 00:15:14,950 >> Mundu að borðið sem við sáum bara fyrr. 340 00:15:14,950 --> 00:15:17,600 Svo kúla flokkar omega af n, besta falli 341 00:15:17,600 --> 00:15:20,010 er það er hægt að fara bara yfir Listinn sinnum, ákveða 342 00:15:20,010 --> 00:15:22,270 hey þetta er nú þegar raðað, og aftur. 343 00:15:22,270 --> 00:15:25,960 Sameina raða, sama hvað þú gerir, er ómega af n log n. 344 00:15:25,960 --> 00:15:29,200 Svo fyrir flokkaðs lista, kúla Raða er að fara að vera hraðari. 345 00:15:29,200 --> 00:15:30,870 346 00:15:30,870 --> 00:15:32,430 >> Hvað um nú tengdir listum? 347 00:15:32,430 --> 00:15:36,070 Svo tengd lista geta vaxið og skreppa að passa eins marga þætti eins og þarf. 348 00:15:36,070 --> 00:15:38,489 Having that-- svo oftast beinn samanburður 349 00:15:38,489 --> 00:15:40,280 er að fara til vera tengdur listi með fjölda. 350 00:15:40,280 --> 00:15:41,600 351 00:15:41,600 --> 00:15:44,050 Svo jafnvel þótt fylki getur auðveldlega vaxa og skreppa 352 00:15:44,050 --> 00:15:47,130 að passa eins marga þætti eftir þörfum, a tengda listanum 353 00:15:47,130 --> 00:15:49,600 í samanburði við array-- An array hefur handahófi aðgang. 354 00:15:49,600 --> 00:15:52,960 Við getum vísitölu á hvaða einkum þáttur í fylkinu. 355 00:15:52,960 --> 00:15:56,430 >> Svo fyrir tengdan lista, getum við ekki bara fara á fimmta frumefni, 356 00:15:56,430 --> 00:16:00,260 við verðum að fara frá upphafi þar til við fáum á fimmta frumefni. 357 00:16:00,260 --> 00:16:03,990 Og það er að fara að koma í veg fyrir okkur frá gera eitthvað eins tvöfaldur leit. 358 00:16:03,990 --> 00:16:08,150 Talandi um tvöfaldur leit, tvöfaldur leit tilhneigingu til að vera hraðar en línulega leit. 359 00:16:08,150 --> 00:16:11,120 Having that-- svo ein möguleg hlutur 360 00:16:11,120 --> 00:16:13,380 er að þú getur ekki gert tvöfaldur leita á tengdum listum, 361 00:16:13,380 --> 00:16:14,730 þú getur aðeins gert það á fylki. 362 00:16:14,730 --> 00:16:18,030 En sennilega meira um vert, þú getur ekki gert tvöfaldur leit 363 00:16:18,030 --> 00:16:20,690 á fjölda sem er ekki flokkuð. 364 00:16:20,690 --> 00:16:23,990 Upfront þú gætir þurft að raða fylki, og aðeins þá getum 365 00:16:23,990 --> 00:16:25,370 þú tvöfaldur leit. 366 00:16:25,370 --> 00:16:27,660 Svo ef þinn hlutur er ekki Raðað til að byrja með, 367 00:16:27,660 --> 00:16:29,250 þá línuleg leit gæti verið hraðar. 368 00:16:29,250 --> 00:16:30,620 369 00:16:30,620 --> 00:16:31,740 >> Spurning 27. 370 00:16:31,740 --> 00:16:34,770 Svo íhuga forritið hér fyrir neðan, sem verður í næstu glæru. 371 00:16:34,770 --> 00:16:37,790 Og þetta er einn þar sem við erum fara að vilja að sérstaklega fram 372 00:16:37,790 --> 00:16:39,980 Gildin fyrir ýmsum breytum. 373 00:16:39,980 --> 00:16:41,990 Svo skulum líta á það. 374 00:16:41,990 --> 00:16:43,160 >> Svo línu einn. 375 00:16:43,160 --> 00:16:45,457 Við höfum INT x jafnt og 1. 376 00:16:45,457 --> 00:16:47,040 Það er það eina sem hefur gerst. 377 00:16:47,040 --> 00:16:50,440 Svo í línu eitt, sjáum við í okkar borð, að y, a, b, og tmp eru allir 378 00:16:50,440 --> 00:16:51,540 sverta út. 379 00:16:51,540 --> 00:16:52,280 Svo er það X? 380 00:16:52,280 --> 00:16:53,860 Jæja við setjum bara það jafnt og 1. 381 00:16:53,860 --> 00:16:55,020 382 00:16:55,020 --> 00:16:58,770 Og þá mörkin tvö, vel, sjáum við að y er stillt á 2, 383 00:16:58,770 --> 00:17:00,550 og borðið er þegar fyllt í fyrir okkur. 384 00:17:00,550 --> 00:17:03,040 Svo er x 1 og Y er 2. 385 00:17:03,040 --> 00:17:05,890 >> Nú, lína þrjú, við erum nú inni í skiptasamnings virka. 386 00:17:05,890 --> 00:17:07,560 Hvað gerði við framhjá að skipta? 387 00:17:07,560 --> 00:17:11,609 Við fórum merkið X fyrir a, og ampersand Y fyrir b. 388 00:17:11,609 --> 00:17:15,160 Þar sem vandamálið fyrr fram að heimilisfang x 389 00:17:15,160 --> 00:17:17,520 er 0x10, og heimilisfang y er 0x14. 390 00:17:17,520 --> 00:17:18,970 391 00:17:18,970 --> 00:17:21,909 Svo a og b eru jöfn 0x10 og 0x14, í sömu röð. 392 00:17:21,909 --> 00:17:23,670 393 00:17:23,670 --> 00:17:26,250 >> Nú í línu þrjú, hvað eru x og y? 394 00:17:26,250 --> 00:17:28,554 Jæja, ekkert hefur breyst um x og y á þessum tímapunkti. 395 00:17:28,554 --> 00:17:30,470 Jafnvel þó þeir séu inni í helstu stafla ramma, 396 00:17:30,470 --> 00:17:32,469 þeir hafa enn sömu gildi sem þeir gerðu áður. 397 00:17:32,469 --> 00:17:34,030 Við höfum ekki breytt allir minni. 398 00:17:34,030 --> 00:17:35,710 Svo er x 1, y er 2. 399 00:17:35,710 --> 00:17:36,550 400 00:17:36,550 --> 00:17:37,050 Allt í lagi. 401 00:17:37,050 --> 00:17:40,300 Svo nú við sögðum INT tmp jafn stjörnu a. 402 00:17:40,300 --> 00:17:44,410 Svo í línu fjögur, allt er það sama nema fyrir tmp. 403 00:17:44,410 --> 00:17:47,130 Við höfum ekki breyst neinar gildi um neitt nema fyrir tmp. 404 00:17:47,130 --> 00:17:49,230 Við erum að setja tmp jafngildir stjörnu a. 405 00:17:49,230 --> 00:17:50,620 Hvað er stjörnu a? 406 00:17:50,620 --> 00:17:56,240 Jæja, stig til X., Svo stjörnumerkja er að fara að jafna x, sem er 1. 407 00:17:56,240 --> 00:18:00,080 Svo allt er afritað niður, og tmp er 1. 408 00:18:00,080 --> 00:18:01,110 >> Nú næstu línu. 409 00:18:01,110 --> 00:18:03,380 Star a jafngildir stjörnu b. 410 00:18:03,380 --> 00:18:10,000 Svo fyrir línu five-- vel aftur, allt er það sama nema hvað stjörnu a er. 411 00:18:10,000 --> 00:18:10,830 Hvað er stjörnu a? 412 00:18:10,830 --> 00:18:13,720 Jæja, sagði við bara stjörnu a er x. 413 00:18:13,720 --> 00:18:16,400 Þannig að við erum að breyta X að jafna stjörnu b. 414 00:18:16,400 --> 00:18:18,960 Hvað er stjörnu b? y. b bendir til y. 415 00:18:18,960 --> 00:18:21,030 Svo er stjarna b y. 416 00:18:21,030 --> 00:18:25,140 Þannig að við erum að setja x jöfn y, og allt annað er það sama. 417 00:18:25,140 --> 00:18:29,130 Þannig að við sjáum í næstu línu að x er nú 2, og restin eru bara afrita niður. 418 00:18:29,130 --> 00:18:31,120 >> Nú í næstu línu, stjörnu b jafngildir tmp. 419 00:18:31,120 --> 00:18:34,740 Jæja, sagði við bara stjörnu b er Y, þannig að við erum að setja Y jafn tmp. 420 00:18:34,740 --> 00:18:37,450 Allt annað er það sama, svo allt fær afritaðar niður. 421 00:18:37,450 --> 00:18:42,050 Við erum að setja y jafngildir tmp, sem er einn, og allt annað er það sama. 422 00:18:42,050 --> 00:18:43,210 >> Nú loks, lína sjö. 423 00:18:43,210 --> 00:18:44,700 Við erum aftur í the aðalæð virka. 424 00:18:44,700 --> 00:18:46,350 Við erum eftir skipti er lokið. 425 00:18:46,350 --> 00:18:48,972 Við höfum misst, B, og tmp, en á endanum við 426 00:18:48,972 --> 00:18:51,180 eru ekki að breyta neinum gildum um neitt á þessum tímapunkti, 427 00:18:51,180 --> 00:18:52,800 við afrita bara X og y niður. 428 00:18:52,800 --> 00:18:56,490 Og við sjáum að x og y eru nú 2 og 1 í stað 1 og 2. 429 00:18:56,490 --> 00:18:58,160 The skipti hefur tekist að framkvæma. 430 00:18:58,160 --> 00:18:59,500 431 00:18:59,500 --> 00:19:00,105 >> Spurning 28. 432 00:19:00,105 --> 00:19:01,226 433 00:19:01,226 --> 00:19:03,100 Segjum sem svo að þú lendir villa skilaboð 434 00:19:03,100 --> 00:19:06,790 neðan á skrifstofutíma næsta ári sem VS eða TF. 435 00:19:06,790 --> 00:19:08,930 Ráðleggja hvernig á að festa hvert þessara villur. 436 00:19:08,930 --> 00:19:11,160 Svo óskilgreindur tilvísun GetString. 437 00:19:11,160 --> 00:19:12,540 Hvers vegna gætir þú séð þetta? 438 00:19:12,540 --> 00:19:15,380 Jæja, ef nemandi er með GetString í númerið þeirra, 439 00:19:15,380 --> 00:19:20,310 þeir hafa rétt tæti innifalinn cs50 punktur H til að fela cs50 bókasafn. 440 00:19:20,310 --> 00:19:22,380 >> Jæja, hvað gera þeir þarf að laga þessa villu? 441 00:19:22,380 --> 00:19:26,810 Þeir þurfa að gera á sprettinn lcs50 á the stjórn lína þegar þeir eru saman. 442 00:19:26,810 --> 00:19:29,501 Svo ef þeir fara ekki clang þjóta lcs50, þá eru þeir 443 00:19:29,501 --> 00:19:32,000 ekki að fara að hafa raunverulegt kóða sem útfærir GetString. 444 00:19:32,000 --> 00:19:33,190 445 00:19:33,190 --> 00:19:34,170 >> Spurning 29. 446 00:19:34,170 --> 00:19:36,190 Óbeint lýsa virka bókasafn strlen. 447 00:19:36,190 --> 00:19:37,550 448 00:19:37,550 --> 00:19:40,360 Jæja þetta núna, þeir hafa ekki gert rétta kjötkássa fela í sér. 449 00:19:40,360 --> 00:19:41,440 450 00:19:41,440 --> 00:19:45,410 Í þessu tiltekna tilviki, haus skrá þeir þurfa að fela er band punktur h 451 00:19:45,410 --> 00:19:48,710 og þar á meðal band punktur h, nú að student-- nú þýðanda 452 00:19:48,710 --> 00:19:51,750 hefur aðgang að yfirlýsingar um strlen, 453 00:19:51,750 --> 00:19:54,120 og það veit að númerið þitt notar strlen rétt. 454 00:19:54,120 --> 00:19:55,380 455 00:19:55,380 --> 00:19:56,580 >> Spurning 30. 456 00:19:56,580 --> 00:20:00,240 Meira prósent viðskipti en gögn rök. 457 00:20:00,240 --> 00:20:01,540 Svo hvað er þetta? 458 00:20:01,540 --> 00:20:06,470 Vel muna að þessi prósent signs-- hvernig þær samsvara printf. 459 00:20:06,470 --> 00:20:08,890 Svo í printf við gætum percent-- við gætum prentað eitthvað 460 00:20:08,890 --> 00:20:11,380 eins prósent ég Sviga n. 461 00:20:11,380 --> 00:20:15,310 Eða við gætum prentað eins prósent i, rúm, prósent i, rúm, prósent i. 462 00:20:15,310 --> 00:20:18,950 Svo fyrir hvert af þeim prósent skilti, þurfum við 463 00:20:18,950 --> 00:20:21,560 að standast breytu í lok printf. 464 00:20:21,560 --> 00:20:26,980 >> Þannig að ef við segjum printf paren prósent Ég Sviga n loka paren, 465 00:20:26,980 --> 00:20:30,270 vel, segjum við að við erum fara að prenta á heiltölu 466 00:20:30,270 --> 00:20:33,970 en þá erum við standast ekki printf heiltala til raunverulega prenta. 467 00:20:33,970 --> 00:20:37,182 Svo hér meira prósent viðskipti en gögn rök? 468 00:20:37,182 --> 00:20:39,390 Það er að segja að við höfum a heild búnt af percents, 469 00:20:39,390 --> 00:20:42,445 og við höfum ekki nóg breytur að raunverulega fylla í þeim percents. 470 00:20:42,445 --> 00:20:44,850 471 00:20:44,850 --> 00:20:50,010 >> Og þá ákveðið, fyrir spurningu 31, örugglega misst 40 bæti í einu blokkir. 472 00:20:50,010 --> 00:20:52,350 Þannig að þetta er Valgrind villa. 473 00:20:52,350 --> 00:20:54,720 Þetta er að segja að einhversstaðar í kóðanum þínum, 474 00:20:54,720 --> 00:20:59,010 þú ert með úthlutun sem er 40 bytes stór svo þú malloced 40 bytes, 475 00:20:59,010 --> 00:21:00,515 og þú aldrei leysti það. 476 00:21:00,515 --> 00:21:02,480 477 00:21:02,480 --> 00:21:05,140 Líklegast að þú þarft bara að finna einhverja minni leka, 478 00:21:05,140 --> 00:21:07,650 og finna þar sem þú þarft að losa þessa blokk af minni. 479 00:21:07,650 --> 00:21:08,780 480 00:21:08,780 --> 00:21:11,910 >> Og spurning 32, ógild skrifa stærðar 4. 481 00:21:11,910 --> 00:21:13,250 Aftur er þetta Valgrind villa. 482 00:21:13,250 --> 00:21:15,440 Þetta þarf ekki að gera með minni leka núna. 483 00:21:15,440 --> 00:21:20,750 Þetta er flest likely-- ég meina, það er einhverskonar ógilda réttindi minni. 484 00:21:20,750 --> 00:21:23,270 Og líklega er þetta einhver konar biðminni flæða. 485 00:21:23,270 --> 00:21:26,560 Þar sem þú ert með array, kannski heiltala array, og skulum 486 00:21:26,560 --> 00:21:30,115 segja að það er af stærð 5, og þú reyna að snerta array krappi 5. 487 00:21:30,115 --> 00:21:34,150 Svo ef þú ert að reyna að skrifa að það gildi, það er ekki stykki af minni 488 00:21:34,150 --> 00:21:37,440 að þú hefur í raun aðgang að og svo þú ert að fara að fá þessa villu, 489 00:21:37,440 --> 00:21:39,272 segja ógilt skrifa af stærð 4. 490 00:21:39,272 --> 00:21:42,480 Valgrind er að fara að viðurkenna að þú ert reyna að snerta minni óviðeigandi. 491 00:21:42,480 --> 00:21:43,980 >> Og það er það fyrir quiz0. 492 00:21:43,980 --> 00:21:47,065 Ég er Rob Bowden, og þetta er CS50. 493 00:21:47,065 --> 00:21:51,104